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を、あなたのコードにも取り入れてみてください。
ディスカッション
コメント一覧
まだ、コメントがありません