新規作成日 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();
}
}
}
実行結果は、先ほどと同じです。
