Home > C# > C# 学び直し > List<T>クラス

C#で、配列の内容をList<T>に格納する

新規作成日 2017-10-22
最終更新日

List<T>の要素をAddメソッドを1つ1つ追加するのではなく、一度に配列をList<T>に変換したいときがあります。その場合は、Addメソッドではなく、AddRangeメソッドを使用します。

List<T>.AddRange メソッド (IEnumerable<T>)]

配列からListを作成するには、AddRangeメソッドを使用します。

using System.Collections.Generic;

namespace LisTest03
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] stringArray = new string[] { "one", "two", "three", "four", "five", "six", "seven"};

            List<string> stringList = new List<string>();
            // string配列をList<string>に格納する
            stringList.AddRange(stringArray);

            // List<string> stringListの内容をコンソールに出力する
            foreach (string str in stringList)
            {
                System.Console.WriteLine(str);
            }

            // Keep the console window open in debug mode.
            // デバッグモードで、コンソール・ウインドウを開いた状態に維持します。
        
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}

出力結果

配列からリストを作成する

このように、配列を元にリストを作成できます。では少し、プログラムを変更してみましょう。

文字列を、stringクラスのSplitメソッドを使用して分割して配列を作成した後、List<string>クラスに格納します。

「参考」方法: String.Split を使用して文字列を解析する (C# プログラミング ガイド)

namespace ListTest05
{
    class Program
    {
        static void Main(string[] args)
        {
            // 区切り文字
            char[] delimiterChars = {','};
            
            // 分割するテキスト
            string text = "one,two,three,four,five,six,seven";
            // テキストを分割して、文字列配列に格納する
            string[] stringArray= text.Split(delimiterChars);

            List<string> stringList = new List<string>();
            // string配列をList<string>に格納する
            stringList.AddRange(stringArray);

            // List<string> stringListの内容をコンソールに出力する
            foreach (string str in stringList)
            {
                System.Console.WriteLine(str);
            }

            // Keep the console window open in debug mode.
            // デバッグモードで、コンソール・ウインドウを開いた状態に維持します。
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}

実行結果は、先ほどと同じです。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」