1. ホーム
  2. c#

[解決済み] オブジェクトのリストが特定の値を持つプロパティを含むかどうかをチェックする

2023-04-10 18:48:35

質問

次のようなコードがあるとします。

class SampleClass
{
    public int Id {get; set;}
    public string Name {get; set;}
}
List<SampleClass> myList = new List<SampleClass>();
//list is filled with objects
...
string nameToExtract = "test";

そこで質問ですが、どのようなList関数で myList にマッチする Name プロパティを持つオブジェクトのみを抽出するために、どのようなリスト関数を使えばよいのでしょうか? nameToExtract の文字列と一致する Name プロパティを持つオブジェクトのみです。

この質問が本当に単純/明白である場合、私は事前に謝罪します。

どのように解決するのですか?

あなたは Enumerable.Where という拡張メソッドがあります。

var matches = myList.Where(p => p.Name == nameToExtract);

を返します。 IEnumerable<SampleClass> . フィルタリングされた List が必要だとすると、単純に .ToList() を実行すればよい。


ところで、もし私が今日上記のコードを書いていたら、Unicode文字列の取り扱いの複雑さを考慮して、等号チェックは別の方法で行うと思います。

var matches = myList.Where(p => String.Equals(p.Name, nameToExtract, StringComparison.CurrentCulture));

参照