LINQは「国連」? ― 複雑な処理を短縮する魔法の仕組み


C#を学んでいると、LINQ(リンク)という言葉に出会うことがあります。

「Language Integrated Query(言語統合クエリ)」の略で、データの抽出や並び替えなどをスマートに記述できる仕組みです。

ところで、「国際連合」を「国連」と略すことは、日常で当たり前ですよね。

実は、LINQも“複雑な正式名称を、簡潔に表す仕組み”という意味では、国連と似ています。


略す理由は「長いから」「何度も使うから」

私たちは「国際連合」といちいち言わず、「国連」と呼びます。それは以下の理由です:

  • 文字数が長くて言いにくい
  • 何度も登場するので短くしたい
  • 意味が通じるので省略しても困らない

LINQもまさにこの役割を担います。


ループを省略してみよう

たとえば、次のような「偶数を抽出する処理」があるとします。

普通のC#コード(従来の方法):

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evens = new List<int>();

foreach (int n in numbers)
{
    if (n % 2 == 0)
    {
        evens.Add(n);
    }
}

これでももちろん動きますが、毎回このパターンを書くのは面倒です。


LINQで略してみよう

LINQを使うと、同じ処理が1行で書けます。

var evens = numbers.Where(n => n % 2 == 0).ToList();

どうでしょう?

意味はまったく同じですが、簡潔で読みやすく、意図が明確です。


LINQは「ややこしい敬語を略して話せるようにする」ようなもの

敬語の文章:

お手数ですが、もしよろしければ、そちらの書類にご署名をいただけますと幸いです。

これを友達同士なら:

署名してくれる?

に略しますよね。

LINQもこれと同じく、「遠回しな手続きを、わかりやすく直接的にする」仕組みです。


LINQが活躍するシーン

  • 配列やリストから特定の条件を満たすものだけ取り出したい
  • ソートしたい(並び替え)
  • 集計したい(合計、平均、件数など)

これらを1つの文でスマートに書けるのがLINQの魅力です。


まとめ:LINQは「プログラミングの国連」?

  • 「国際連合」を「国連」と呼ぶように
  • 「foreachとifでごちゃごちゃ書いていた処理」を「LINQ」でスッキリ略せる
  • 書く量が減り、読む人にもやさしい

だから、**LINQは“略しても意味が伝わる魔法の道具”**なんです。


練習してみよう:あなたも略してみる

次のようなデータがあります。LINQを使って「名前が5文字以上のもの」だけを取り出してみましょう。

List<string> names = new List<string> { "たなか", "さとう", "すずき", "おおたけ", "かわぐち" };

ヒント:

var longNames = names.Where(name => name.Length >= 5);

ぜひ、国連的に略す技術=LINQを、あなたのコードにも取り入れてみてください。

訪問数 5 回, 今日の訪問数 1回

C#,LINQ

Posted by hidepon