C#のListを徹底解説|配列との違い・基本操作・使いどころ
この記事でわかること
- C#における List の考え方がわかる
- 配列と List の違いを理解できる
- List の基本的な使い方と操作方法がわかる
- 繰り返し処理と組み合わせた実践的な書き方が身につく
Listとは何か
List は、要素数が変わるコレクションです
List<int> numbers = new List<int>();配列と同じように複数の値をまとめて扱えますが、最大の違いは
- 要素の追加や削除ができる
- サイズを気にしなくていい
という点です
Listと配列の違い
ここで一度、配列との違いを整理しておきます
| 項目 | 配列 | List |
|---|---|---|
| サイズ変更 | できない | できる |
| 要素の追加 | 不可 | 可能 |
| 宣言の簡単さ | 簡単 | 少し記述が多い |
| 実務での使用頻度 | やや低め | 高い |
迷ったら「サイズが変わるかどうか」で判断すると失敗しにくいです
Listの宣言と初期化
List を使うには、ジェネリック型を指定します
List<int> numbers = new List<int>();最初から値を入れることもできます
List<int> numbers = new List<int> { 10, 20, 30 };この書き方はとてもよく使われるので、覚えておくと便利です
要素を追加する(Add)
List の基本操作といえば Add です
List<int> numbers = new List<int>();
numbers.Add(10);
numbers.Add(20);配列と違って、サイズを気にせず追加できるのが大きなメリットです
要素を削除する(Remove)
不要になった要素は削除できます
numbers.Remove(10);指定した値が最初に見つかった1つだけ削除されます
インデックスを指定して削除することもできます
numbers.RemoveAt(0);要素にアクセスする
List も配列と同じように、インデックスでアクセスします
int value = numbers[0];
numbers[1] = 25;インデックスが 0 から始まる点も、配列と同じです
要素数を取得する
List の要素数は Count プロパティで取得します
int count = numbers.Count;配列の Length と名前が違う点は、よく混乱しやすいポイントです
for と List の組み合わせ
インデックスが必要な場合は for が向いています
for (int i = 0; i < numbers.Count; i++)
{
Console.WriteLine(numbers[i]);
}配列のときと書き方はほぼ同じですが、Length ではなく Count を使います
foreach と List の組み合わせ
要素を順番に処理するだけなら foreach が一番きれいです
foreach (int number in numbers)
{
Console.WriteLine(number);
}List × foreach は、C#で最もよく見る組み合わせのひとつです
Listを使うときの注意点
List はとても便利ですが、万能ではありません
- インデックスを使った頻繁な削除は遅くなる
- 要素数が固定なら配列のほうが軽い
用途に応じて、配列と List を使い分ける意識が大切です
まとめ
- List はサイズが自由に変わるコレクション
- 要素の追加・削除が簡単に行える
- Count を使って要素数を管理する
- foreach との相性がとても良い
- サイズ固定なら配列、変動するなら List
List を理解できると、次の Set(HashSet)や Dictionary が一気に理解しやすくなります