いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

Linq入門記-43 (LINQ To Object, All)


今回は、All拡張メソッドについてです。


All拡張メソッドは、シーケンス内の全ての要素が条件に合致しているか否かを確認するメソッドです。
量指定子演算子と呼ばれます。(他にも、Any, Containsが存在します。)


シーケンス内の要素全てが、特定の条件に合致するか否かを確認する場合に利用します。
All拡張メソッドを利用せずに、Whereで絞り込んでからCountで件数を確認しても同じ事になりますが
Allで聞いた方が楽です。


書式は以下の通り。

public static bool All<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)


以下、サンプルです。

    #region LinqSamples-40
    public class LinqSamples40 : IExecutable
    {
        public void Execute()
        {
            //
            // All拡張メソッドは、シーケンスの全要素が指定された条件に合致しているか否かを判別するメソッドである。
            //
            // 引数には条件としてpredicateを指定する。
            // このメソッドは、対象シーケンス内の全要素が条件に合致している場合のみTrueを返す。
            // (逆にAny拡張メソッドは、一つでも合致するものが存在した時点でTrueとなる。)
            //
            var names = new string[]{ "gsf_zero1", "gsf_zero2", "gsf_zero3", "2222" };
            
            Console.WriteLine("Allメソッドの結果 = {0}", names.All(item => Char.IsDigit(item.Last())));
            Console.WriteLine("Allメソッドの結果 = {0}", names.All(item => item.StartsWith("g")));
            Console.WriteLine("Allメソッドの結果 = {0}", names.All(item => !string.IsNullOrEmpty(item)));
        }
    }
    #endregion


実行結果は以下の通りです。

  Allメソッドの結果 = True
  Allメソッドの結果 = False
  Allメソッドの結果 = True

================================
過去の記事については、以下のページからご参照下さい。