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

jma*_*erx 3 c# linq ienumerable

我有一个 IEnumerable<Project>

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

有没有办法做到这一点?

yoo*_*er8 11

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

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

  • +1因为这是包含链接的唯一答案. (2认同)

Iro*_*n84 5

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

var hasAny = projectList.Any(proj => proj.ID == someID);
Run Code Online (Sandbox Code Playgroud)

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

var matchedProject = projectList.FirstOrDefault(proj => proj.ID == someID);
Run Code Online (Sandbox Code Playgroud)

null如果找不到任何匹配项,它将返回,但如果确实找到它,则会拉出整个对象.