[LINQ] LINQ to Objects(Allメソッド)

LINQ to Objects という名前から、何かしらのオブジェクトを対象としたLINQであることが想像できます。

では、いったいどういうオブジェクトを対象としているのでしょうか?

これは IEnumerable<T>インターフェースが実装されているオブジェクトを対象としており、いわゆるコレクションに対して作用するLINQとなります。


Allメソッドを使ってみる

Allメソッドを使用すると、すべての条件が満たされているかを確認することができます。

たとえば 1, 3, -3, 0, 2 の数値が入った配列変数 numbersに負の値が含まれているかどうかをチェックする例です。

VBの例

Dim numbers() As Integer = {1, 3, -3, 0, 2}
Dim allPlus As Boolean = numbers.All(Function(n) n >= 0)

Console.WriteLine(IIf(allPlus, "すべて正の整数", "負の整数が含まれている"))

C#の例

int[] numbers = { 1, 3, -3, 0, 2 };

bool allPlus = numbers.All(n => n >= 0);

Console.WriteLine(allPlus ? "すべて正の整数" : "負の整数が含まれている");

数値型配列はコレクションなので、LINQを使用することが可能です。

ここではnumbers変数でAllメソッドを使用し、 n  => n >= 0 で、numbers変数の値が正かどうかを調べます。すべての値が正である場合は、allPlus変数にはtrueが代入されます。1つでも負の値が含まれている場合には、allPlusはfalseが代入されます。

このように、LINQを使用すると、すべての要素をチェックすることなく判定結果を得ることができます。


次回はAnyメソッドを紹介します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です