c# - 检查列表中是否存在具有特定值的对象
问题描述
我正在尝试检查列表中是否存在特定对象。我有 ListA,它包含所有元素,并且我有一个字符串,它可能属于也可能不属于 List A 中一个对象的 id。
我知道以下内容:
List<T>.Contains(T)
如果元素存在于 List 中,则返回 true。问题:我必须搜索特定元素。
List<T>.Find(Predicate<T>)
如果它在 List 中找到具有谓词的元素,则返回一个 Object。问题:这给了我一个对象,但我想要真或假。
现在我想出了这个:
if (ListA.Contains(ListA.Find(a => a.Id == stringID)) ==true)
...做酷狗屎
这是最好的解决方案吗?对我来说似乎有点奇怪。
解决方案
你可以使用Any()
,
Any()
来自 Linq,查找列表中的任何元素是否满足给定条件,如果满足则返回true
if(ListA.Any(a => a.Id == stringID))
{
//Your logic goes here;
}
MSDN : Enumerable.Any 方法
推荐阅读
- airflow - 导入具有depth-1变量为列表的变量文件时如何解决InterfaceError?
- vb.net - VB.net:无法以另一种形式运行公共子
- python - Tensorflow 记录:如何读取和绘制图像值?
- angular - 有效果在不同的情况下调度不同的动作
- node.js - 玉模板引擎中的for循环
- sql - Xammp 端口问题
- c++ - 第 9 行给定代码中的错误是什么?
- python - continue 语句在函数中是如何工作的?
- maven - 无法在 windows 中安装 maven:“'mvn' 未被识别为内部或外部命令可运行程序或批处理文件”
- javascript - 如何在一个提交按钮中处理两个服务调用