我试图找到一个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)
假设它MyList是IEnumerable<T>(或从中派生的任何东西IEnumerable<T>),其中T是一个对象,该对象具有在实例上具有Id相同类型属性的属性.IdMyObject
IDList.Any(id => id == Object.Id)
Run Code Online (Sandbox Code Playgroud)
没问题,true如果至少有一个满足你的谓词的元素存在,它会返回给你.
| 归档时间: |
|
| 查看次数: |
20255 次 |
| 最近记录: |