【C#】配列をリストに変換する方法をわかりやすく解説!

スポンサーリンク

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#では リストの方が扱いやすい場面が多い ので、
配列をリストに変換する方法をしっかりマスターして、コードをもっと便利に活用しましょう!

C#
スポンサーリンク

コメント