Álv*_*cía 2 c# linq list where-in
我有两个列表,一个列表中object A有另一个列表objects B,如下所示:
ObjectA
{
Int64 idObjectA;
String name;
....
}
ObjectB
{
Int64 idObjectB;
Int64 idObjectA;
String name;
....
}
Run Code Online (Sandbox Code Playgroud)
我有两个列表,一个用于Object A和另一个用Object B.我想创建一个list C只有的新的objects B,这IDObjectA是任何ID一个list A.
在SQL中,它将是以下内容:
select * from B where IDObjectA IN(1,2,3,4...);
Run Code Online (Sandbox Code Playgroud)
在我的例子中,值列表IN clause是列表ObjectA,其中包含属性idObjectA.
你可以使用Joinlinq方法通过加入listB和listA通过它们来实现这一点idObjectA,然后选择itemB.
var result = (from itemB in listB
join itemA in listA on itemB.idObjectA equals itemA.idObjectA
select itemB).ToList();
Run Code Online (Sandbox Code Playgroud)
该方法具有线性复杂度(O(n)).使用Where(... => ....Contains())或double foreach具有二次复杂度(O(n^2)).
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |