2010-08-12 113 views
1

我有兩個列表...查找使用LINQ(C#)從兩個不同的自定義列表的所有項目

List<ObjectA> listA 
List<ObjectB> listB 

兩者有一個int屬性ID,這是獨一無二的......

我倒是想擺脫那個listA的有listA[x].ID = listB[x].ID,使用LINQ的所有對象...

感謝

+1

回過頭來看,這是否意味着你想要listA中的所有項目在listB中都有一個匹配的ID,這些項目也與listA中的項目具有相同的索引? – 2010-08-12 16:05:50

回答

3

您需要使用.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 */ }); 
2

這將做到這一點:

from a in ListA 
    join b in ListB on a.ID equals b.ID 
    select new { ListAItem = a, ListBItem = b }; 

這將生成一個匿名對象列表,每個匿名對象都包含ID匹配的ListA和ListB項目。

1
var query = listA.Where((x, i) => x.ID == listB[i].ID); 
相關問題