C#には、複数の要素を一つにまとめるデータ構造として、配列とリストがあります。本記事では、配列とリストの特徴と、配列からリストへ、リストから配列への変換処理方法について紹介します。
配列とリストの特徴と違い
配列(Array)
配列は、同じ型の要素を固定した数だけ格納するためのデータ構造です。C#における配列の特徴は以下の通りです。
- 固定サイズ:作成時にサイズが決まり、後から変更することができません。
- 直接アクセス:インデックスを使って、任意の要素に直接アクセスできます。
- 効率的なメモリ使用:メモリ上に連続した領域にデータが格納されるため、メモリ効率が良いです。
リスト(List)
リストは、System.Collections.Generic名前空間にあるListクラスを使用します。リストの特徴は以下の通りです。
- 動的サイズ:要素の追加や削除によって、リストのサイズを柔軟に変更できます。
- 簡単な要素の操作:Add、Remove、Findなどのメソッドを利用して、要素の操作が簡単に行えます。
- オーバーヘッドあり:動的なサイズ変更のため、配列と比較してメモリ効率が若干劣ることがあります。
- 直接アクセス:配列と同様に、インデックスを使って任意の要素に直接アクセスすることも可能。
配列とリストの違いの要点と使い分け
配列とリストは、以下のような違いがあります。
- サイズの柔軟性:配列は固定サイズ、リストは動的サイズ。
- パフォーマンス:配列は要素へのアクセスが高速ですが、リストは要素の追加や削除が容易。
使い分けとしては、要素数が変わらない場合は配列、頻繁に要素を追加・削除する場合はリストが適しています。
配列とリストの相互変換
配列をリストに変換
配列をリストに変換するには、Listクラスのコンストラクタを利用します。以下はそのサンプルコードです。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 配列を定義
int[] array = { 1, 2, 3, 4, 5 };
// 配列からリストへ変換
List<int> list = new List<int>(array);
// リストの内容を表示
foreach (int item in list)
{
Console.WriteLine(item);
}
}
}
リストを配列に変換
リストを配列に変換するには、ListのToArrayメソッドを利用します。以下はそのサンプルコードです。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// リストを定義
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
// リストから配列へ変換
int[] array = list.ToArray();
// 配列の内容を表示
foreach (int item in array)
{
Console.WriteLine(item);
}
}
}
まとめ
配列とリストの選択は、作成するアプリケーションの要件に大きく依存します。固定サイズでメモリ効率が重要な場合は配列を、サイズの可変性や便利な操作が必要な場合はリストを選択すると良いでしょう。