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

C#のコレクションとLINQの活用テクニックまとめ|初心者でもわかる便利な使い方

C#のコレクションとLINQの活用テクニックまとめ
C#のコレクションとLINQの活用テクニックまとめ

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

生徒

「C#でたくさんのデータをまとめて扱うとき、どんな方法がありますか?」

先生

「C#ではコレクションを使うと便利です。さらにLINQを使うとデータを検索したり並べ替えたりするのが簡単になりますよ。」

生徒

「コレクションって配列と違うんですか?」

先生

「配列も便利ですが、コレクションの方が柔軟で使いやすいことが多いんです。具体的な例を見ながら学んでいきましょう!」

1. C#のコレクションとは?

1. C#のコレクションとは?
1. C#のコレクションとは?

C#のコレクションとは、データをまとめて管理するための入れ物のようなものです。たとえば「買い物かご」のように、リンゴやバナナなど複数のものを入れて管理することができます。

配列(Array)もデータを並べて格納できますが、コレクションは追加や削除が簡単にできるので、より実用的です。特によく使うのがList<T>(リスト)です。


using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> fruits = new List<string>();
        fruits.Add("りんご");
        fruits.Add("ばなな");
        fruits.Add("みかん");

        foreach (var f in fruits)
        {
            Console.WriteLine(f);
        }
    }
}

りんご
ばなな
みかん

このように、リストを使うと簡単に要素を追加できます。配列と違って大きさを気にする必要がありません。

2. よく使うコレクションの種類

2. よく使うコレクションの種類
2. よく使うコレクションの種類

C#にはいろいろなコレクションがあります。用途に合わせて選ぶことで、効率よくプログラムを書くことができます。

  • List<T>:順番にデータを管理できるリスト
  • Dictionary<TKey,TValue>:キーと値の組み合わせで管理できる(辞書のようなもの)
  • Queue<T>:先に入れたものを先に取り出す(スーパーの列のようなイメージ)
  • Stack<T>:後から入れたものを先に取り出す(積み重ねた本を取るようなイメージ)

例えば、Dictionaryを使うと名前と年齢をセットで管理できます。


Dictionary<string, int> ages = new Dictionary<string, int>();
ages["太郎"] = 20;
ages["花子"] = 22;

Console.WriteLine(ages["太郎"]); // 20

3. LINQでデータを扱う

3. LINQでデータを扱う
3. LINQでデータを扱う

LINQ(Language Integrated Query)とは、データを検索・抽出・並べ替え・集計できる便利な仕組みです。SQLというデータベースの言語に似た書き方ができるので、複雑な処理もシンプルに書けます。

例えば、リストの中から条件に合うものだけを取り出すことができます。


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

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

        var result = numbers.Where(n => n > 10);

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

15
20

Whereを使うと「条件に一致するものだけ取り出す」ことができます。このようにLINQを使うと、条件分岐やループをシンプルに書けるのが大きなメリットです。

4. LINQの便利なメソッド

4. LINQの便利なメソッド
4. LINQの便利なメソッド

LINQにはたくさんの便利なメソッドがあります。よく使うものをいくつか紹介します。

  • Where:条件に合うデータだけを抽出
  • Select:必要な項目だけを取り出す
  • OrderBy:データを昇順(小さい順)に並べる
  • OrderByDescending:データを降順(大きい順)に並べる
  • Count:データの数を数える

List<string> fruits = new List<string> { "りんご", "ばなな", "みかん", "ぶどう" };

var sorted = fruits.OrderBy(f => f);

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

ぶどう
ばなな
みかん
りんご

この例では、果物の名前を五十音順に並べ替えています。プログラムで並べ替えを自分で書く必要がないので、とても効率的です。

5. コレクションとLINQを組み合わせると最強

5. コレクションとLINQを組み合わせると最強
5. コレクションとLINQを組み合わせると最強

コレクションとLINQを組み合わせると、実際のアプリケーション開発でとても強力です。例えば「ある年齢以上の人だけを取り出して並べ替える」といった処理も数行で書けます。


var people = new List<(string Name, int Age)>
{
    ("太郎", 20),
    ("花子", 22),
    ("次郎", 18)
};

var adults = people.Where(p => p.Age >= 20)
                   .OrderBy(p => p.Age);

foreach (var p in adults)
{
    Console.WriteLine($"{p.Name} ({p.Age})");
}

太郎 (20)
花子 (22)

このように、コレクションとLINQを活用することでデータ処理をわかりやすく効率的に記述できます。初心者のうちに慣れておくと、C#でのプログラミングがぐっと楽になります。

まとめ

まとめ
まとめ

C#のコレクションLINQは、複数のデータを効率よく扱うために欠かせない要素であり、初心者が早い段階から身につけておくことで、プログラム全体の理解がぐっと深まり、実践的な開発にも大きく役立ちます。コレクションは、配列よりも柔軟にデータを追加・削除でき、場面に応じて使い分けることができる点が大きな特徴です。特にList<T>Dictionary<TKey, TValue>Queue<T>Stack<T>といった代表的なコレクションはそれぞれ目的が明確で、データの管理やアクセスを簡単にしてくれます。 一方で、LINQはコレクションに対して「検索」「並べ替え」「抽出」「集計」などを直感的に書ける強力な機能です。複雑な条件を使った抽出も、SQLのような短いコードで実現できるため、処理の可読性が向上し、変更にも強いコードを書けるようになります。 コレクションとLINQを組み合わせることで、動作の流れをシンプルに保ちながら効率的なデータ処理が行えるため、実際のアプリケーション開発でも頻繁に活用されます。特に、条件で絞り込んだり、並び替えたり、特定の項目だけを取り出したりする場面では大きな効果を発揮します。ここではまとめとして、コレクションとLINQを組み合わせたサンプルコードを改めて示し、応用の幅を感じてもらえるよう整理しています。

コレクションとLINQを活用したサンプルプログラム


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

class Program
{
    static void Main()
    {
        List<(string Name, int Age)> people = new List<(string Name, int Age)>
        {
            ("たろう", 25),
            ("はなこ", 30),
            ("じろう", 18),
            ("みさき", 27)
        };

        // 年齢20以上をLINQで抽出し、年齢順で並べ替え
        var adults = people.Where(p => p.Age >= 20)
                           .OrderBy(p => p.Age)
                           .Select(p => $"{p.Name}({p.Age}さい)");

        Console.WriteLine("20さい以上のひとの一覧:");
        foreach (var p in adults)
        {
            Console.WriteLine(p);
        }
    }
}

このサンプルでは、コレクションで人物データを管理しつつ、LINQのWhere(抽出)、OrderBy(並べ替え)、Select(整形)という三つの基本操作を組み合わせています。これにより、複雑に見えるデータ処理も短く整理され、コードの見通しがとてもよくなります。 C#ではこのような書き方が日常的に使われ、実務でも大きな力を発揮するため、初心者の段階でコレクションとLINQに慣れておくことは非常に価値があります。特に、LINQはほかの言語にはない書き心地を持っており、学べば学ぶほど表現力が広がっていきます。 今回学んだ内容をふりかえりつつ、今後さらに高度なLINQ操作(グループ化、結合、集計処理など)にも挑戦する土台ができるよう、基本をしっかり身につけておくことが大切です。

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

生徒

「コレクションって配列よりできることが多いんですね。LINQで検索や並べ替えもすぐにできるのがすごいと思いました!」

先生

「そうですね。コレクションはデータを扱うときの基本となりますし、LINQはコードを短くわかりやすくしてくれます。組み合わせるとさらに便利になりますよ。」

生徒

「たくさんのデータがあっても短いコードでまとめられるので、初心者でも扱いやすいと感じました!」

先生

「その感覚はとても大事です。コレクションとLINQを理解しておくと、アプリケーション開発が格段に楽になりますし、より柔軟なプログラムが書けるようになりますよ。」

生徒

「今日の内容をもっと応用して、ほかのLINQメソッドも試してみたくなりました!」

先生

「ぜひ挑戦しましょう。SelectMany、GroupBy、Joinなど、覚えると便利な仕組みがまだまだあります。ひとつずつ確実に身につけていけば大丈夫ですよ。」

カテゴリの一覧へ
新着記事
New1
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New2
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New3
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New4
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.4
Java&Spring記事人気No4
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決