我有一个list
包含int
值的值,我想使用 linq 表达式返回一个属性等于列表项值的结果。我怎样才能做到这一点?
list<int> x = ...
var o = anotherList.where(s => s.Id == (the list values));
var o = anotherList.Where(s => list.Contains(s.ID));
我将“一个属性等于列表项值”翻译为“另一个列表包含此列表 ID”:
一种有效的方法是使用Join
:
var o = from al in anotherList
join tlId in thelist
on al.Id equals tlId
select al;
var o = anotherList.Where(s =>list.Any(a=> a.Id == s.Id));
您还可以使用匿名方法:
var o = anotherList.Where(delegate(someItem s) { return list != null && list.Contains(s.ID); });