我有两个清单......
List<ObjectA> listA
List<ObjectB> listB
两者都有一个int属性ID,这是唯一的...
我想使用LINQ ...
从listA获取listA[x].ID = listB[x].ID
的所有对象
由于
答案 0 :(得分: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 */ });
答案 1 :(得分:2)
这样做:
from a in ListA
join b in ListB on a.ID equals b.ID
select new { ListAItem = a, ListBItem = b };
这将生成一个匿名对象列表,每个对象包含ID匹配的ListA和ListB项目。
答案 2 :(得分:1)
var query = listA.Where((x, i) => x.ID == listB[i].ID);