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

时间:2013-02-14 20:12:30

标签: c# linq ienumerable

我有IEnumerable<Project>

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

有办法吗?

4 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:5)

您可以使用Any()扩展程序。

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

或者,如果您想获得该记录,可以使用FirstOrDefault()

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

如果找不到匹配的内容,则会返回null,但如果确实找到了该对象,则会将其拉出。

答案 2 :(得分:4)

使用

projects.Any(p => p.ID == someID)  
如果谓词与任何元素匹配,则

返回true(布尔值)。

答案 3 :(得分:3)

是的,使用Any扩展方法:

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