我有兩個列表...查找使用LINQ(C#)從兩個不同的自定義列表的所有項目
List<ObjectA> listA
List<ObjectB> listB
兩者有一個int屬性ID,這是獨一無二的......
我倒是想擺脫那個listA的有listA[x].ID = listB[x].ID
,使用LINQ的所有對象...
感謝
我有兩個列表...查找使用LINQ(C#)從兩個不同的自定義列表的所有項目
List<ObjectA> listA
List<ObjectB> listB
兩者有一個int屬性ID,這是獨一無二的......
我倒是想擺脫那個listA的有listA[x].ID = listB[x].ID
,使用LINQ的所有對象...
感謝
您需要使用.Join(...)
功能。
在查詢語法,它會是這個樣子:
var result = from a in listA
join b in listB on a.ID equals b.ID
select new { /* properties you want */ };
在標準的C#語法,它會是這個樣子:
var result = listA.Join(listB, a => a.ID, b => b.ID, (a, b) => new { /* properties you want */ });
這將做到這一點:
from a in ListA
join b in ListB on a.ID equals b.ID
select new { ListAItem = a, ListBItem = b };
這將生成一個匿名對象列表,每個匿名對象都包含ID匹配的ListA和ListB項目。
var query = listA.Where((x, i) => x.ID == listB[i].ID);
回過頭來看,這是否意味着你想要listA中的所有項目在listB中都有一個匹配的ID,這些項目也與listA中的項目具有相同的索引? – 2010-08-12 16:05:50