カテゴリ: C# 更新日: 2025/10/08

C#のLINQとラムダ式を組み合わせた活用例を完全ガイド!初心者でもわかる解説

C#のLINQとラムダ式を組み合わせた活用例
C#のLINQとラムダ式を組み合わせた活用例

先生と生徒の会話形式で理解しよう

生徒

「先生、C#のLINQって聞いたことがありますけど、どうやって使うんですか?」

先生

「LINQは、リストや配列などのデータを検索・並び替え・抽出するための機能なんです。とても便利ですよ。」

生徒

「へえ!でも難しそう…。ラムダ式っていう言葉も一緒に出てきますけど、それも関係あるんですか?」

先生

「はい。LINQとラムダ式を組み合わせると、とてもシンプルで読みやすいコードが書けます。それでは基本から一緒に学んでいきましょう!」

1. LINQとは?

1. LINQとは?
1. LINQとは?

C#のLINQ(Language Integrated Query)は、データを簡単に検索・抽出・並び替えできる仕組みです。普通、データを扱うときにはfor文やif文を駆使して複雑に書きますが、LINQを使えば短いコードでスッキリと書けるようになります。例えば「リストの中から条件に合うものだけ取り出す」といった操作を、まるで自然な言葉のように記述できるのです。

2. ラムダ式とは?

2. ラムダ式とは?
2. ラムダ式とは?

ラムダ式とは、簡単に書ける「小さな関数」のようなものです。通常の関数は名前を付けて宣言しますが、ラムダ式はその場でサッと書けます。=>という矢印を使うのが特徴です。

例えば「xという数を2倍にするラムダ式」はこう書きます。


x => x * 2

この表現をLINQに組み込むことで、データ処理をコンパクトに書けるようになります。

3. LINQとラムダ式を組み合わせた例

3. LINQとラムダ式を組み合わせた例
3. LINQとラムダ式を組み合わせた例

それでは実際にC#のリスト(List型)を使って、LINQとラムダ式を組み合わせた例を見てみましょう。例えば「整数のリストから偶数だけを取り出す」という操作です。


using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };

        // LINQとラムダ式を使って偶数を抽出
        var evenNumbers = numbers.Where(x => x % 2 == 0);

        foreach (var n in evenNumbers)
        {
            Console.WriteLine(n);
        }
    }
}

実行すると、リストの中から偶数だけが表示されます。


2
4
6

ここで使っているWhereメソッドは「条件に合うものを抽出する」LINQの代表的なメソッドです。ラムダ式 x => x % 2 == 0 が「xを2で割った余りが0のとき(つまり偶数)」という条件を表しています。

4. 並び替えや検索の例

4. 並び替えや検索の例
4. 並び替えや検索の例

LINQとラムダ式は抽出だけでなく、並び替え検索にも便利です。例えば「リストを昇順に並べ替える」「特定の条件に合う最初の要素を取り出す」といったことができます。

昇順に並び替え


var sorted = numbers.OrderBy(x => x);
foreach (var n in sorted)
{
    Console.WriteLine(n);
}

特定の条件に合うものを検索


var firstOverThree = numbers.First(x => x > 3);
Console.WriteLine(firstOverThree);

この場合、リストの中から最初に条件 x > 3 に当てはまる数字が取り出され、結果は 4 になります。

5. 実生活の例えで理解する

5. 実生活の例えで理解する
5. 実生活の例えで理解する

イメージしやすいように、買い物リストを例に考えてみましょう。スーパーで「野菜だけ欲しい」と思ったときに、商品全体のリストから「野菜」という条件でフィルタリングするのがLINQです。そして、その条件を簡単に表現するのがラムダ式です。

例えば、次のような商品リストから「名前にトマトが含まれるもの」だけを取り出すことができます。


List<string> items = new List<string> { "トマト", "りんご", "きゅうり", "ミニトマト" };

var tomatoes = items.Where(item => item.Contains("トマト"));

foreach (var t in tomatoes)
{
    Console.WriteLine(t);
}

トマト
ミニトマト

このように、LINQとラムダ式を使えば日常的な「検索」や「並び替え」をプログラムの中でも自然に書けるのです。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法