【Aモデル録 フェーズ1 C#基礎】

06-02:リスト(List)

〜「サイズが変わる配列」ではなく、「管理してくれる箱」〜

また少しずつ学習の段階が上がっていきます。

ここから、「C#の便利グッズ」が頻出してきます。
注釈で明示していきますが、これらは「C#に最初から備えてあるメソッド」です。

一言で言うと

👉 リストとは、「要素の追加・削除・管理を、C#に任せられる配列」 です。

配列の

を、全部まとめて解決する道具。

リストの基本形

種類 宣言書式 例 命名規則 覚え方
リスト List<型> 名前 = new(); List<int> ages = new(); 複数形+camelCase 複数は s を忘れずに

配列との共通点と、決定的な相違点を比較

共通点

👉 共通点は、棚の枠の中には、1つの箱しか入れられない

相違点

👉 配列は、自分で棚の数を決めて作る、カラーボックス

0 1 2 3 4

👉 リストは、「追加・抜く・詰める」という手順コードを「詳細に書く」のを、C#が請け負ってくれます。

編集前のインデックス 0

1 2 3 4
したいこと そのまま 追加したい 追加したい 抜きたい 詰めたい 番号を連番にしたい そのまま

なぜ、配列の次に List なのか

配列を触ったあなたは、もうこう思ってます。

配列はこう言います:

「それ、できません」

そこで List の出番。


最小コード(まずこれだけ)

List<int> numbers = new List<int>();

何を作ったか。

📌 List も参照型(重要)


リストでできること

配列と比較しながら進めます。

要素を追加する(配列との違い)

numbers.Add(10);
numbers.Add(20);
numbers.Add(30);

👉 サイズ指定なし
👉 C#が広げてくれる
👉 詳しい管理も C# 任せ

配列との精神的差:

※「Add();」は、便利グッズ


要素を取り出す

int x = numbers[1];

👉 見た目は配列、性質は参照型


要素を削除する

numbers.Remove(20);

配列では地獄だった処理。

※「Remove();」も、便利グッズ


要素数を知る

int count = numbers.Count;

配列の場合は:

numbers.Length;

リストの場合は:

numbers.Count;

👉 C#が管理してる感、ここに出る。

※「Length;」、「Count;」も、便利グッズ


超重要:List も参照型

List<int> a = new List<int>();
a.Add(1);	//ここではaは1

List<int> b = a;
b.Add(2);	//bが値を変える

結果:

a.Count == 2

👉 箱は1つ
👉 a も b も、それぞれに同じ List にアクセスして編集できる

配列とまったく同じ構造。


ここが複雑。 リストは二層構造

リストの中身が int の場合:

    [a]
    ↓↑
 [ List ] : [ 1 ][ 2 ][ 3 ]
    ↓↑
    [b]

👉 棚は共有、扱っているのは値の複製品


よくある勘違い(修正ポイント)

❌ List は便利な配列
✅ List は「管理機能つきの参照型コンテナ」

❌ List は中身も参照
✅ 中身の型次第


実務での判断基準

配列を使うとき

👉 基礎・内部処理向け

リストを使うとき

👉 ほぼこっち


今日の着地点(これでOK)


構成と読み方|タイトル一覧

Top - はじめに|この忘備録と「Aモデル」について