确定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);