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