月ノ書

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 を理解できると、次の Set(HashSet)や Dictionary が一気に理解しやすくなります

学習進捗