エンジニアの現場では「配列よりも圧倒的に使われている」このList型について、なぜ便利なのか、どういう仕組みなのかを初心者向けに分かりやすく解説します。
1. 配列とList、最大の違いは「◯◯できるか」
結論から言うと、配列とListの決定的な違いはこれです。
- 配列 (Array):サイズが「固定」
- List (List<T>):サイズが「可変」
配列の弱点
配列は、最初に「3個入る箱」と決めたら、後からそれを4個用に変えることは絶対にできません。
もし無理やり4個目のデータを入れようとすると、プログラムは「入らないよ!」とエラーを出して停止します。これが配列の「固定」という性質です。
Listの強み:入れ物が「ヤドカリ」のような柔軟さ
一方、Listは「可変(Variable)」です。 最初は小さく作っておいて、データが増えれば自動的に大きくなり、減れば詰めてくれます。
実務において、データの数が最初から最後まで完全に決まっていることは稀です。だからこそ、柔軟な List が重宝されるのです。
2. 実践!Listを使ってみよう
使い方は驚くほど簡単です。 まずはファイルの先頭に using System.Collections.Generic; と書かれていることを確認してください。
① 作る(宣言)
// 整数を入れるリストを作成
// 名称はpointsの場合 ()の中身は空でOK!
List<int> points = new List<int>();
② 追加する(Add)
配列だと面倒な「追加」も、メソッド一つで完了です。
points.Add(100); // これでサイズが1になる
points.Add(50); // これでサイズが2になる
points.Add(80); // これでサイズが3になる
限界を気にせず、どんどん .Add() してOKです。
③ 削除する(Remove)
配列でデータを消すと「空席(nullや0)」が残りますが、Listは違います。
points.Remove(50);
// 50が消えて、後ろにあった80が自動的に前に詰めます。
// 中身:[100, 80]
この「自動で詰めてくれる」機能こそが、Listを使う最大のメリットの一つです。
3. ちょっと待って!「Listも実は固定」って本当?
ここで、一歩進んだエンジニアを目指すあなたに「Listの真実」をお話しします。
「Listは無限に入る魔法の箱」と言いましたが、実はコンピュータのメモリ(記憶装置)の仕組み上、物理的に伸び縮みする箱なんて存在しません。
では、なぜListはサイズが変わるように見えるのでしょうか? それは、Listが「ヤドカリ」だからです。
Listの裏側の仕組み(ヤドカリ戦法)
- Listは最初、小さめの「固定の配列(貝殻)」を裏で持っています。
- データ(Add)が増えてその貝殻が満杯になると…?
- Listは自動的に「2倍のサイズの新しい配列(大きな貝殻)」を用意します。
- そして、古いデータを一瞬で引っ越しさせます。
ユーザーである私たちから見ると「箱が大きくなった」ように見えますが、裏では「Listという執事が、バレないように素早く大きな箱に交換してくれている」のです。
ここがポイント! 配列(Array)だと、この「新しい箱を用意して引っ越す」という面倒な作業を人間(あなた)がコードで書かないといけません。 Listなら、それをC#が勝手にやってくれます。これが「Listは便利」と言われる本当の理由です。
4. まだある!Listの便利な機能
Listを使うと、データの操作がパズルのように簡単になります。
- 並べ替え (
Sort)list.Sort();と書くだけで、中身が小さい順に綺麗に並びます。 - 検索 (
Contains)list.Contains(100);で、そのデータが入っているか(True/False)を一瞬で調べられます。 - 一括削除 (
Clear)list.Clear();で、中身を全て空っぽにできます。
5. まとめ:まずはListから始めよう
- データの個数が決まっているなら 配列(曜日、トランプの枚数など)
- データの個数が変わる可能性があるなら List(TODOリスト、ユーザー一覧、得点履歴など)
迷ったら、まずは List<T> を使うのが現代C#プログラミングの正解です。 「サイズ変更」や「削除後の穴埋め」といった面倒な作業はListに任せて、あなたはもっと楽しい「アプリの機能作り」に集中しましょう!
さらにC#を極めたい方へ
「Listの仕組み、もっと詳しく知りたい」「LINQを使ってListをもっと便利に操作したい」 そう思った方には、体系的に学べる書籍や講座がおすすめです。
- 初心者におすすめのC#入門書:[スラスラわかるC# 第3版]
- 手元に一冊あると安心です。


コメント