C#でプログラミングをしていると、配列(Array)をリスト(List<T>)に変換したいという場面があるかと思います。
例えば、データを柔軟に追加・削除したいときや、Linqの便利なメソッドを使いたいときなど、リストの方が扱いやすい 場面が多くあります。
本記事では、C#で配列をリストに変換する基本的な方法 から、応用的な使い方 まで、分かりやすく解説します!
この記事でわかること
✅ 配列をリストに変換する 基本的な方法
✅ ToList()
と List<T>
のコンストラクタの 違いと使い分け
✅ 応用的な変換(部分変換・型変換など)の 実践例
「配列とリストの違いがよくわからない」という方でも安心して読める内容になっています!
それでは、さっそく見ていきましょう!
配列をリストに変換する基本的な方法
C#では、配列(Array
)をリスト(List<T>
)に変換する方法がいくつかあります。
ここでは、最も一般的で実用的な2つの方法 を紹介します。
方法1:ToList() メソッドを使う(おすすめ)
最もシンプルで推奨される方法は、LinqのToList()
メソッドを使う方法です。
サンプルコード
using System;
using System.Collections.Generic;
using System.Linq; // ToList() を使うために必要
class Program
{
static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = array.ToList(); // 配列をリストに変換
Console.WriteLine(string.Join(", ", list)); // 出力: 1, 2, 3, 4, 5
}
}
ポイント
✅ シンプルで直感的
✅ 可読性が高い
✅ 最も一般的な方法として多くの場面で使われる
あくまで新しくリストを作成しているため、元の配列を変換していないことに注意してください。
方法2:List<T>のコンストラクタを使う
もう一つの方法は、List<T>
のコンストラクタに配列を直接渡す方法です。
ToList()
より少し冗長ですが、Linqを使わなくてもよくなるというメリットがあります。
サンプルコード
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = new List<int>(array); // 配列をリストに変換
Console.WriteLine(string.Join(", ", list)); // 出力: 1, 2, 3, 4, 5
ポイント
✅ Linq
を使わなくてもOK
✅ シンプルな書き方
✅ 配列のデータをそのままリストにコピー
こちらもToList()
の方法と同じく、新しくリストを作成しているため、元の配列が変更されない点に注意してください。
基本的には ToList()
を使うのが最も簡単でおすすめ ですが、
Linq を使わずに済ませたい場合は List<T>
のコンストラクタを使うのもアリ です!
次の章では、より応用的な変換方法(配列の一部をリストにする・型を変換しながらリストにする)を紹介します!
配列からリストに変換する応用例を紹介
基本的な変換方法を理解したところで、少し応用的な方法 も見ていきましょう。
ここでは、以下の2つのケースを紹介します。
✅ 配列の一部をリストに変換する方法
✅ 型を変換しながらリストにする方法
配列の一部をリストに変換する方法
配列全体ではなく、「特定の範囲だけをリストにしたい」場合は、Skip()
や Take()
を組み合わせることで簡単に実現できます。
🔹 例: 3番目以降の2つの要素をリストにする
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = array.Skip(2).Take(2).ToList(); // 3番目から2つ取得
Console.WriteLine(string.Join(", ", list)); // 出力: 3, 4
}
}
ポイント
✅ Skip(n)
で最初の n 個をスキップ
✅ Take(m)
で次の m 個を取得
✅ 柔軟に範囲を指定してリスト化できる
型を変換しながらリストにする方法
元の配列の型を変換しながらリストにしたい場合は、Array.ConvertAll()
を使うと便利です。
例えば、string
の配列を int
のリスト に変換したい場合は、以下のように書けます。
🔹 例: string[]
→ List<int>
に変換
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
string[] strArray = { "1", "2", "3" };
List<int> intList = new List<int>(Array.ConvertAll(strArray, int.Parse));
Console.WriteLine(string.Join(", ", intList)); // 出力: 1, 2, 3
}
}
ポイント
✅ Array.ConvertAll(配列, 変換処理)
で型変換
✅ 新しい型のリストが簡単に作れる
✅ ラムダ式でカスタム変換も可能!
Array.ConvertAll()
の代わりに Select()
(Linq) を使う方法もあります。
例えば、同じ string[]
→ List<int>
の変換は、以下のように書けます。
🔹 Select()
を使った変換
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
string[] strArray = { "1", "2", "3" };
List<int> intList = strArray.Select(int.Parse).ToList();
Console.WriteLine(string.Join(", ", intList)); // 出力: 1, 2, 3
}
}
ポイント
✅ Linqの書き方に統一できる
✅ ラムダ式で複雑な変換も可能
✅ そのまま ToList()
をつなげられるので便利
まとめ
この記事では、C#で配列をリストに変換する方法 について、基本から応用まで詳しく解説しました。
C#では リストの方が扱いやすい場面が多い ので、
配列をリストに変換する方法をしっかりマスターして、コードをもっと便利に活用しましょう!
コメント