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 に答える