3

我有这样的结构

public struct MyStruct
{
     public string Name;
     //More fields and construtors
}

现在,如果我有List<MyStruct>办法使用Contains()列表功能?

这不会编译:

if(_myStructList.Contains(x => x.Name == "DAMN!")){//DO STUFF}

这是错误:

Cannot convert lambda expression to type 'MyStruct' because it is not a delegate type

我想那这不适用于结构?!

4

2 回答 2

13

试试Any()LiNQ 中的方法:

using System.Linq;

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

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

于 2013-01-07T12:55:52.150 回答
5

不使用 Linq 的 Enumerable.Any 的替代方法是List.Exists

if (_myStructList.Exists(x => x.Name == "DAMN!")) ...
于 2013-01-07T13:03:06.360 回答