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

时间:2019-06-05 11:33:30

标签: c# list find contains

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

我知道以下内容:

如果该元素存在于列表中,则

List<T>.Contains(T)返回true。问题:我必须搜索特定的元素。

如果

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

现在我想出了:

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

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

3 个答案:

答案 0 :(得分:2)

您可以使用Any()

  Linq的

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

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

}

MSDN:Enumerable.Any Method

答案 1 :(得分:1)

为此使用Any

if (ListA.Any(item => item.id == yourId))
{
   ...
}

答案 2 :(得分:1)

使用.Any是最好的选择:MSDN

if(ListA.Any(a => a.Id == stringID))
{
    //You have your value.
}