检查列表中是否存在具有特定值的对象

Que*_*er7 4 c# contains list find

我正在尝试检查列表中是否存在特定对象。我有 ListA,它包含所有元素,我有一个字符串,它可能属于也可能不属于 List A 中一个对象的 id。

我知道以下几点:

List<T>.Contains(T)如果元素存在于 List 中,则返回 true。问题:我必须搜索特定的元素。

List<T>.Find(Predicate<T>)如果在 List 中找到具有谓词的元素,则返回一个对象。问题:这给了我一个对象,但我想要真或假。

现在我想出了这个:

if (ListA.Contains(ListA.Find(a => a.Id == stringID)) ==true) ...做很酷的事

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

Pra*_*kar 6

你可以使用Any()

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

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

}
Run Code Online (Sandbox Code Playgroud)

MSDN : Enumerable.Any 方法