list包含linq中的ID

Bex*_*Bex 8 c# linq asp.net

我试图找到一个linq查询,所以我可以在if语句中写它.

伪代码:

IDList是int <List>的列表

if (IDList.Contains (Object.Id)) Do something
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找出需要的东西.

在无linq这工作:

  foreach(int id in IDList )
     {
        if (id == Object.Id)
            break;
     }
Run Code Online (Sandbox Code Playgroud)

但如果可能的话我想把它作为一条线.

我第一次尝试这个:

IDList.Contains(Object.Id);
Run Code Online (Sandbox Code Playgroud)

但这会引发编译错误

我想知道它应该是这两个中的一个吗?

  IDList.Any(id => id == Object.Id)
Run Code Online (Sandbox Code Playgroud)

要么

IDList.Exists(id => id == Object.Id);
Run Code Online (Sandbox Code Playgroud)

我不完全理解lambdas和事物是如何工作的或者andy和存在之间的区别所以我不确定我是否走错了路线?

Mat*_*sca 19

你可以这样做:

if (MyList.Any(c => c.Id == MyObject.Id)) { }
Run Code Online (Sandbox Code Playgroud)

假设它MyListIEnumerable<T>(或从中派生的任何东西IEnumerable<T>),其中T是一个对象,该对象具有在实例上具有Id相同类型属性的属性.IdMyObject


Dmi*_*riy 5

 IDList.Any(id => id == Object.Id)
Run Code Online (Sandbox Code Playgroud)

没问题,true如果至少有一个满足你的谓词的元素存在,它会返回给你.