[.NET クラスライブラリ Tips][LINQ] コレクションの各要素に指定した条件を評価し、条件を満たす要素のみ取得する(Whereメソッド)

スポンサーリンク

概要

LINQのWhereメソッドは、IEnumerable型のコレクションから特定の条件に一致する要素を取得するために使用されます。Whereメソッドは、コレクションの各要素に対して指定された条件を評価し、条件を満たす要素のみを返します。Whereメソッドは、データのフィルタリングに役立ちます。

この記事ではWhereメソッドの使用方法を説明します。

公式サイト情報はコチラを参照してください。

構文

IEnumerable Where(
  this IEnumerable source, 
  Func<TSource, bool> predicate)

構文の要素は以下の通りです。
– source: フィルター処理されるコレクション
– predicate: 各要素に適用される条件を指定するデリゲート。デリゲートは、1つのパラメーターを受け取り、bool型の値を返します。

使用例

以下の例では、int型の配列から偶数を取得するためにWhereメソッドを使用します。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.Where(n => n % 2 == 0);

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);
}
// Output: 2 4 6 8 10

この例では、numbers配列からWhereメソッドを使用して、偶数のみを取得しています。Whereメソッドは、nが偶数である場合にtrueを返すラムダ式を使用して、numbers配列内の各要素を評価します。そして、evenNumbers変数に格納された結果は、偶数の要素のみを含むIEnumerable型のシーケンスです。最後に、evenNumbers変数内の各要素を出力するために、foreachループが使用されます。
また、Whereメソッドは複数回繰り返して使用することができます。例えば、以下のようなコードで、奇数かつ5より小さい要素を抽出することができます。

var numbers = new int[] { 1, 2, 3, 4, 5 };
var result = numbers
    .Where(n => n % 2 == 1)
    .Where(n => n < 5);

foreach (var number in result)
{
    Console.WriteLine(number);
}

このコードでは、まずWhereメソッドを使用して奇数の要素を抽出し、その結果に対して再度Whereメソッドを使用して5より小さい要素を抽出しています。

.NET クラス Tips 一覧

これまでに紹介した .NET Tips 一覧はこちら

Please follow and like us:

コメント

タイトルとURLをコピーしました