如何使用"查找方法"检查C#列表中是否存在条目

dot*_*dot 4 c# linq list

我通过以下方式使用带有Find方法的C#List:

Tag searchResult = tags.Find(x => x.TagId.Equals(tag));
Run Code Online (Sandbox Code Playgroud)

该列表包含"struct Tag",现在我的问题是如何检查列表中是否存在标记条目.

MSDN方面,我发现了以下内容:

  • 如果找不到任何内容,则返回"类型T的默认值".

所以我尝试了以下方法:

if(default(Tag) == searchResult ){}
Run Code Online (Sandbox Code Playgroud)

但由于错误:"运算符'=='无法应用于类型的操作数",这不起作用

我错了什么?

Yuv*_*kov 5

几种方法.

你可以使用Enumerable.Any():

if (tags.Any(x => x.TagId.Equals(tag)))
{
    // There's a match.
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要实际找到相关标签,请使用Enumerable.FirstOrDefault:

var tag = tags.FirstOrDefault(x => x.TagId.Equals(tag));
if (tag != null) 
{
    // There exists a tag.
}
Run Code Online (Sandbox Code Playgroud)