首页 > 解决方案 > 检查列表中是否存在具有特定值的对象

问题描述

我正在尝试检查列表中是否存在特定对象。我有 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)...做酷狗屎

这是最好的解决方案吗?对我来说似乎有点奇怪。

标签: c#listfindcontains

解决方案


你可以使用Any()

Any()来自 Linq,查找列表中的任何元素是否满足给定条件,如果满足则返回true

if(ListA.Any(a => a.Id == stringID))
{
//Your logic goes here;

}

MSDN : Enumerable.Any 方法


推荐阅读