配列の中から、「ある条件に一致するものを探す」ような場面ではSystem.Array クラスのジェネリックメソッドが使える。例えば Find :ある条件に一致する要素を探す Exists :ある条件に一致する要素が存在するかどうかを調べる FindIndex :ある条件に一致する要素のインデックスを取得 など。これらのメソッドの引数に Predicateデリゲート を渡す必要がある。このデリゲートには「ある条件に一致かどうか」を返す処理を実装する。 public void Execute() { string[] animals ={ "cat", "dog", "pig", "bear" }; Console.WriteLine(Array.Exists (animals, new Predicate (StartWithP)).ToString()); Console.WriteLine(Array.Find (animals, new Predicate (StartWithP))); Console.WriteLine(Array.FindIndex (animals, new Predicate (StartWithP)).ToString()); } //"p"で始まるかどうかを判定する private bool StartWithP(string value) { return (value.StartsWith("p")); } ただし、これだと「ある条件」が固定となってしまう。 条件を動的にするには以下のように変数を使用すればよいが、以下のようにExecuteメソッドの外に宣言しなければならない。 private string _condition; public void Execute() { string[] animals ={ "cat", "dog", "pig", "bear" }; _condition = "p"; Co...