C#におけるオブジェクトの値の検索方法


  1. プロパティの値を比較する方法: オブジェクト内の特定のプロパティの値を検索する場合、LINQを使用することができます。以下は、LINQを使用してオブジェクトのリストから特定のプロパティの値を検索する例です。

    var objects = GetObjects(); // オブジェクトのリストを取得するメソッド
    var foundObjects = objects.Where(obj => obj.PropertyName == searchValue);

    上記の例では、GetObjects()メソッドを使用してオブジェクトのリストを取得し、PropertyNameというプロパティの値がsearchValueと一致するオブジェクトを検索しています。

  2. メソッドを使用する方法: オブジェクト内の値を検索するために、オブジェクトに検索メソッドを実装することもできます。以下は、オブジェクト内のプロパティを比較するカスタムメソッドを使用した例です。

    public class MyObject
    {
       public string PropertyName { get; set; }
       public bool ContainsValue(string searchValue)
       {
           return PropertyName.Contains(searchValue);
       }
    }
    var objects = GetObjects(); // オブジェクトのリストを取得するメソッド
    var foundObjects = objects.Where(obj => obj.ContainsValue(searchValue));

    上記の例では、MyObjectクラスにContainsValueというメソッドを実装し、PropertyNameプロパティの値がsearchValueを含むかどうかを確認しています。

  3. インデックサを使用する方法: オブジェクトにインデックサを実装することで、特定の値を検索することもできます。以下は、インデックサを使用して特定の値を検索する例です。

    public class MyObject
    {
       private List<string> values = new List<string>();
       public string this[int index]
       {
           get { return values[index]; }
           set { values[index] = value; }
       }
    }
    var obj = new MyObject();
    obj[0] = "value1";
    obj[1] = "value2";
    var foundValue = obj.FirstOrDefault(value => value == searchValue);

    上記の例では、MyObjectクラスにvaluesというリストを持つインデックサを実装し、FirstOrDefaultメソッドを使用してsearchValueと一致する値を検索しています。

これらはC#でオブジェクト内の値を検索するための一般的な方法のいくつかです。必要に応じて、これらの例を参考にして適切な方法を選択してください。