【C#】配列とListの違いと使い分け

【C#】配列とListの違いと使い分け C#

C# で複数のデータをまとめて扱うときによく利用するのが 配列(array)List<T> です。どちらも「複数の値をひとつの変数で管理できる」という共通点がありますが、特徴や使い方には大きな違いがあります。本記事では配列と List の違いを整理し、どのような場面で使い分ければよいかを解説します。

配列(array)の特徴

配列は C# の基本的なコレクション型で、決まった数の要素を格納できます。インデックスを指定してアクセスするのが基本です。

// 配列の宣言と初期化
int[] numbers = { 1, 2, 3, 4, 5 };

// 要素へのアクセス
Console.WriteLine(numbers[0]);  // 1

// 要素の変更
numbers[1] = 10;
Console.WriteLine(numbers[1]);  // 10

配列はサイズが固定されており、作成後に要素数を変更することはできません。性能が高くメモリ効率も良いですが、柔軟性に欠けます。

List<T> の特徴

List<T> はジェネリックコレクションのひとつで、要素数を自由に増減できるのが特徴です。System.Collections.Generic 名前空間に含まれています。

using System;
using System.Collections.Generic;

// List の宣言と初期化
List<string> fruits = new List<string> { "Apple", "Banana" };

// 要素の追加
fruits.Add("Orange");

// 要素の削除
fruits.Remove("Banana");

// 要素へのアクセス
Console.WriteLine(fruits[0]);  // Apple
Console.WriteLine(fruits.Count); // 要素数を取得

List はサイズが可変で、検索や並べ替えなど便利なメソッドも豊富に用意されています。アプリ開発では配列よりも List を使う機会が多いです。

配列と List の違いまとめ

特徴 配列(array) List<T>
サイズ 固定 可変(追加・削除が可能)
パフォーマンス 高速・メモリ効率が良い 柔軟性重視だが配列よりやや遅い
メソッド 基本的な操作のみ(要素アクセス) Add, Remove, Sort, Find など多数
用途 要素数が最初から決まっている場合 要素数が変動する場合や便利メソッドを活用したい場合

使い分けのポイント

  • 配列(array) … 要素数が固定で変わらない場合。パフォーマンスやメモリ効率を重視する場面。
  • List<T> … 要素を動的に追加・削除する必要がある場合。データ操作を簡単に行いたい場合。

まとめ

配列と List はどちらも複数のデータを扱うために便利ですが、特徴は大きく異なります。
・固定サイズで高速処理なら配列
・可変サイズで柔軟に使いたいなら List
という基準で選ぶと良いでしょう。開発現場では List が主流ですが、配列も基礎として押さえておくことが重要です。