我有一個查詢從數據庫中提取:如何使用來自查詢中的另一個對象的值來設置來自linq查詢的所有項目的屬性?
List<myClass> items = new List<myClass>(from i in context
select new myClass
{
A = i.A,
B = "", // i doesn't know this, this comes from elsewhere
C = i.C
}
我也有另外一個查詢做了類似的事情:
List<myClass2> otherItems = new List<myClass2>(from j in context
select new myClass2
{
A = j.A, // A is the intersection, there will only be 1 A here but many A's in items
B = j.B
}
在現實中,這些類是不僅分離更大和查詢數據通過數據庫,但通過服務器。是否有可能使用LINQ查詢來填充屬性B的所有items
其中items.A相交?所有內置的LINQ謂詞僅出現在聚合,選擇或bool表達式中。
在我的大腦我有這樣的事情,但這是全部關閉:
items.Where(x => x.B = (otherItems.Where(z => z.A == x.A).Single().B));
還是我是可笑的,試圖使這項工作在LINQ和應該只放棄它贊成的for循環實際設置變得微不足道?由於截止日期的原因,我將採用for循環(無論如何,這可能最終會在長時間內更具可讀性),但是可以這樣做嗎?是否需要擴展方法來添加一個特殊的謂詞來允許這樣做?
我想說你的for循環是一個很好的實現。 – JonH
你能展示一個簡單的數據集,它具有你正在尋找的主體結構嗎?最後一個查詢試圖達到什麼目的? – Tormod
@Tormod:第二個查詢包含'B'變量。我正在尋找一個將在第一個集合中執行'B'變量的謂詞或擴展方法。 –