确定LINQ Enumerable是否包含基于条件的对象?

我有一个IEnumerable

我想知道这个列表是否有任何元素Project.ID == someID

有没有办法做到这一点?

是的,您想使用Any方法( 文档 )。

 IEnumerable projects = SomeMethodReturningProjects(); if(projects.Any(p => p.ID == someID)) { //Do something... } 

您可以使用Any()扩展方法。

 var hasAny = projectList.Any(proj => proj.ID == someID); 

或者,如果要获取该记录,可以使用FirstOrDefault() :

 var matchedProject = projectList.FirstOrDefault(proj => proj.ID == someID); 

如果找不到匹配的内容,则返回null ,但如果确实找到它,则会拉出整个对象。

运用

 projects.Any(p => p.ID == someID) 

如果谓词与任何元素匹配,则返回true(布尔值)。

是的,使用Any扩展方法:

 list.Any(p => p.ID == someID);