← C#

LESSON / ARTICLE

LINQ

LINQでコレクションの検索・変換・並べ替え・集計を行います。

LINQ

LINQは、配列やコレクションなどのデータを宣言的に問い合わせるための機能です。Where、Select、OrderByなどを組み合わせて処理を表現できます。

using System.Linq;

int[] values = { 8, 3, 10, 5, 2 };

int[] result = values
    .Where(value => value % 2 == 0)
    .OrderBy(value => value)
    .Select(value => value * 2)
    .ToArray();

この例では偶数を抽出し、昇順に並べ、値を2倍にしています。

遅延実行

多くのLINQクエリは、クエリを定義した時点では実行されず、列挙された時点で処理されます。ToArrayやToListなどは結果を具体的なコレクションへ確定させます。

注意点

  • 同じクエリを何度も列挙すると、処理が繰り返される場合がある。
  • WhereやSelectを重ねすぎると、処理の流れが読みにくくなる。
  • 大量データでは計算量や割り当てを意識する。
  • SQLなど外部データソースに対するLINQは、実行されるクエリの内容も確認する。

LINQは短く書くためだけの機能ではありません。処理の意図が明確になる場合に使いましょう。