LINQ 如何检查一个可空整数是否在整数列表中 C#

4
我有一个对象,其ID为5和6,另外还有一个列表1,5。由于列表中有5,所以我需要的结果是ID为5的对象,但如果列表中有5和6,则需要将两个对象都作为结果。希望我的表述足够清晰。
类似这样:
result = result.Where(r=>r.ID ***IS IN LIST<int>***).OrderBy(r=>r.ID);

非常感谢你提供的帮助。


list.contains(r.ID) 怎么样? - Sebastian L
2
result.Where(r => list.Contains(r.ID)).OrderBy(r => r.ID) - Maarten
所以你想要返回存在于你的对象和列表中的元素? - user1666620
其他回答是正确的。如果你想在内部列表中查找更复杂的行为,这是我使用的真实例子: Sessions.Where(x => x.Performers.Where(y => y.PerformerId == performerId).FirstOrDefault() != null) - libik
@libik:我建议使用.Any()而不是.FirstOrDefault() != null - alek kowalczyk
显示剩余2条评论
4个回答

7
result = result.Where(r=>listOfId.Contains(r.ID)).OrderBy(r=>r.ID);

1
结果 = 结果.Where(r => listOfId.Contains(r.ID)).OrderBy(r => r.ID); - Charkins12
1
修复了缺失的括号,感谢 @Charkins12。 - deramko

4
你可以试试这样做:
result = result.Where(r => somelist.Contains(r.ID)).OrderBy(r => r.ID)

请查看List(Of T).Contains方法以获取详细信息。


3
 result = result.Where(r=>yourList.Contains(r.ID)).OrderBy(r=>r.ID)

2

有些更易读的内容

var results=(from m in MyObjects
            Where myList.Contains(m.Id)
            select m).ToList() ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接