C#の配列の中に条件を満たす要素が存在するかを調べる(LINQ Any)

C#には LINQ というライブラリがあります。

LINQ を使えばコレクション(配列や List クラスなど)に対する処理を簡単に行う事が出来ます。

 

ここでは、LINQ を使って配列に格納された要素の中に特定の要素が存在するかを調べる方法について解説します。

LINQとは

LINQ は IEnumerable<T>インターフェースへの拡張メソッドとして作られています。

つまり、配列Listクラス、Dictionaryクラス、ObservableCollectionクラスなどのIEnumerable<T>インターフェースを実装するオブジェクトであればどれでも同じように使用する事ができます。

 

LINQをつかうには using で System.Linq を参照できるようにしておきましょう。

using System.Linq;

条件を満たす要素が存在するか調べる Any メソッド

条件を満たす要素があるかどうかを調べるには Any メソッドを使用します。

引数には条件内容を指定しますが、ラムダ式を使って記述するのが簡単で一般的な方法です。

※ラムダ式の詳細はC#のラムダ式【=>】って何?をご覧ください

特定の条件を満たす要素が存在する場合にのみ処理する例

            string[] testArray = new string[5];
            testArray[0] = "Taro";
            testArray[1] = "Jiro";
            testArray[2] = "Saburo";
            testArray[3] = "Shiro";
            testArray[4] = "Goro";

            if (testArray.Any(item => (0 == item.CompareTo("Jiro"))))
            {
                Console.WriteLine("Jiroさんがいます");
            }

似た機能をもつ Contains メソッド

条件が完全一致の場合には、Contains メソッドを使う方法もあります。

Contains メソッドではラムダ式で条件を記述する必要が無く手軽です。

 

関連記事