C# 对列表执行LINQ操作<;结构>;

C# 对列表执行LINQ操作<;结构>;,c#,linq,C#,Linq,我有一个这样的结构 public struct MyStruct { public string Name; //More fields and construtors } 现在,如果我有List,有没有办法使用List的Contains()功能 这不会编译: if(_myStructList.Contains(x=>x.Name==“该死!”){//DO STUFF} 以下是错误: Cannot convert lambda expression to type 'MyS

我有一个这样的结构

public struct MyStruct
{
     public string Name;
     //More fields and construtors
}
现在,如果我有
List
,有没有办法使用List的
Contains()
功能

这不会编译:

if(_myStructList.Contains(x=>x.Name==“该死!”){//DO STUFF}

以下是错误:

Cannot convert lambda expression to type 'MyStruct' because it is not a delegate type
我猜这对结构不起作用

尝试LiNQ中的
Any()
方法:

using System.Linq;

if(_myStructList.Any(x => x.Name == "DAMN!")) ...

Contains()
List
的声明方法,它需要一个对象作为参数,并使用equals来比较对象。

可枚举的替代方法。任何不使用Linq的方法都是:


您似乎缺少if的结束括号?这只是问题中的一个输入错误,我的实际代码没有语法错误!感谢您指出thoughContains需要一个
MyStruct
实例,它需要重写相等比较才能匹配。根据Rafal的回答,使用
Any
将是一个更好的解决方案。为了帮助将来的搜索,此问题中报告的错误文本对应于错误代码CS1660。
if (_myStructList.Exists(x => x.Name == "DAMN!")) ...