カテゴリ: C# 更新日: 2026/01/13

C#のLINQでWhere・Select・OrderByを使う方法を完全解説!初心者でもわかる基本操作

C#のLINQでWhere・Select・OrderByを使う方法
C#のLINQでWhere・Select・OrderByを使う方法

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

生徒

「先生、C#でデータを取り出したり並べ替えたりする便利な方法ってありますか?」

先生

「いい質問ですね。C#にはLINQ(リンク)という仕組みがあって、コレクション(複数のデータの集まり)を簡単に操作できますよ。」

生徒

「LINQってどんなことができるんですか?」

先生

「例えば条件に合うデータだけを選ぶ Where、必要な部分だけを取り出す Select、順番を並べ替える OrderBy などがあります。今回はその3つを一緒に学んでいきましょう。」

1. LINQとは?

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

LINQ(Language Integrated Query)は、C#の中でSQLのようにデータを操作できる機能です。複雑なループを書かなくても、条件検索や並べ替えがシンプルに書けます。特にリスト(List)配列(Array)などのコレクション操作に便利です。

例えると、たくさんの紙の束(データ)から「赤い紙だけを抜き出す」「数字の部分だけを取り出す」「小さい順に並べる」といった作業を、一言で命令できるイメージです。

2. Whereで条件に合うデータを取り出す

2. Whereで条件に合うデータを取り出す
2. Whereで条件に合うデータを取り出す

Whereは「条件に合うものだけを選び出す」ために使います。例えば、100点満点のテストの点数から、60点以上の合格者だけを取り出すことができます。


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

class Program
{
    static void Main()
    {
        List<int> scores = new List<int> { 45, 78, 92, 60, 55 };

        var passed = scores.Where(s => s >= 60);

        foreach (var score in passed)
        {
            Console.WriteLine(score);
        }
    }
}

実行結果:


78
92
60

このようにWhereを使うと、特定の条件を満たすデータだけを簡単に抜き出せます。

3. Selectで必要なデータだけを取り出す

3. Selectで必要なデータだけを取り出す
3. Selectで必要なデータだけを取り出す

Selectは「データから必要な部分だけを取り出す」ために使います。例えば、文字列のリストから文字の長さだけを取り出すことができます。


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

class Program
{
    static void Main()
    {
        List<string> names = new List<string> { "Taro", "Hanako", "Ken" };

        var lengths = names.Select(n => n.Length);

        foreach (var len in lengths)
        {
            Console.WriteLine(len);
        }
    }
}

実行結果:


4
6
3

このようにSelectを使うと、元のデータから新しい形のデータを作ることができます。

4. OrderByでデータを並べ替える

4. OrderByでデータを並べ替える
4. OrderByでデータを並べ替える

OrderByは「データを昇順(小さい順)に並べ替える」ために使います。また、OrderByDescendingを使えば降順(大きい順)に並べ替えられます。


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

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

        var sorted = numbers.OrderBy(n => n);

        foreach (var num in sorted)
        {
            Console.WriteLine(num);
        }
    }
}

実行結果:


1
2
4
5
8

並べ替えも一行でできるので、非常に便利です。

5. Where・Select・OrderByを組み合わせる

5. Where・Select・OrderByを組み合わせる
5. Where・Select・OrderByを組み合わせる

これらのメソッドは組み合わせて使うこともできます。例えば、点数リストから60点以上の人の点数だけを抜き出して、昇順に並べることが可能です。


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

class Program
{
    static void Main()
    {
        List<int> scores = new List<int> { 45, 78, 92, 60, 55 };

        var result = scores
            .Where(s => s >= 60)
            .OrderBy(s => s)
            .Select(s => $"点数: {s}");

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

実行結果:


点数: 60
点数: 78
点数: 92

このように組み合わせることで、データ処理をシンプルかつ直感的に記述できます。

まとめ

まとめ
まとめ

C#におけるLINQ(Language Integrated Query)は、リストや配列といったコレクションに対する検索、抽出、並び替えといった操作を、直感的で簡潔な記述で実現できる強力な仕組みです。特にWhereSelectOrderByは、LINQの中でも最も頻繁に使われる基本的なメソッドであり、初心者がまず最初に身につけたい操作です。

Whereメソッドは「条件に一致するデータだけを取り出す」ための方法で、点数が60点以上のデータだけを抽出したり、特定の文字列だけを選んだりする場面に便利です。

Selectメソッドは「元のデータを加工して別の形式で取り出す」用途に使われ、名前のリストから文字数だけを取り出すといった処理が簡単に書けます。

OrderByメソッドはデータを昇順に並び替えるためのものです。反対に降順にしたいときはOrderByDescendingを使います。これにより、値が小さい順、大きい順と自在に並べ替えができます。

さらに、LINQではこれらのメソッドを組み合わせてチェーンのように連続使用することが可能で、たとえば「60点以上の人だけを選び、その点数を小さい順に並べ、フォーマットして表示」といった処理も簡単に実装できます。これにより、従来のfor文やif文を使った複雑なロジックをシンプルに置き換えることができます。

実用的なLINQのサンプルコード


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

class Program
{
    static void Main()
    {
        List<int> scores = new List<int> { 45, 78, 92, 60, 55 };

        var results = scores
            .Where(score => score >= 60)
            .OrderBy(score => score)
            .Select(score => $"合格点: {score}点");

        foreach (var item in results)
        {
            Console.WriteLine(item);
        }
    }
}

上記の例では、LINQのWhereOrderBySelectを組み合わせて、条件に合うデータを抽出し、並べ替え、整形しています。
このようにLINQを活用すれば、複雑な処理も非常に簡潔かつ明確に記述できるため、コードの可読性もメンテナンス性も大きく向上します。

また、LINQはList配列だけでなく、辞書型データベースのクエリXML処理などさまざまな対象に対しても利用できるため、学んでおくことでC#全体のスキル向上につながります。

初心者のうちは、書き方を覚えるのが難しく感じるかもしれませんが、「Whereは絞り込み、Selectは加工、OrderByは並び替え」という基本的な役割さえ理解しておけば、実践の中で少しずつ応用力が身につきます。

先生と生徒の振り返り会話

生徒

「先生、LINQって最初は難しそうだと思ってたけど、実際に使ってみると便利ですね!」

先生

「そうなんです。特にWhereやSelect、OrderByはとてもよく使うので、繰り返し書いて慣れていくと自然と使えるようになりますよ。」

生徒

「点数のリストから合格者だけを選んで並べ替えて、整えた文章で表示するっていう流れがとても実用的でした。」

先生

「そうですね。実務でもログ出力やデータ集計、画面表示に応用できるので覚えておいて損はありませんよ。」

生徒

「Whereで条件を絞って、OrderByで並べて、Selectで文字を変形するって流れを意識すると理解しやすいです。」

先生

「その理解はとても大事です。今後は複数の条件を指定したり、GroupByやJoinといった発展的なLINQも出てくるので、今のうちに基本をしっかり身につけておきましょう。」

生徒

「はい!これからも実際のデータを使ってLINQの練習を続けてみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#のLINQとは何ですか?

C#のLINQ(Language Integrated Query)とは、リストや配列などのコレクションを簡単に操作できる機能で、SQLのようにデータの検索や並べ替えができます。
カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方