C#で値のリストを作成する簡単な方法を探しています。Javaでは、以下のスニペットを頻繁に使用します。
List<String> l = Arrays.asList("test1","test2","test3");
以下の明らかなものを除いて、C#に相当するものはありますか?
IList<string> l = new List<string>(new string[] {"test1","test2","test3"});
C#で値のリストを作成する簡単な方法を探しています。Javaでは、以下のスニペットを頻繁に使用します。
List<String> l = Arrays.asList("test1","test2","test3");
以下の明らかなものを除いて、C#に相当するものはありますか?
IList<string> l = new List<string>(new string[] {"test1","test2","test3"});
回答:
C#3.0のコレクション初期化子を確認してください。
var list = new List<string> { "test1", "test2", "test3" };
煩雑さを軽減したい場合は、
var lst = new List<string> { "foo", "bar" };
これは、C#3.0の2つの機能を使用します。型推論(var
キーワード)とリストのコレクション初期化子です。
あるいは、配列で間に合わせることができる場合、これはさらに短くなります(少し):
var arr = new [] { "foo", "bar" };
C#3では、次のことができます。
IList<string> l = new List<string> { "test1", "test2", "test3" };
これは、C#3の新しいコレクション初期化構文を使用します。
C#2では、2番目のオプションを使用します。
コレクション初期化子を使用することで、C#でそのコード行を少し簡略化できます。
var lst = new List<string> {"test1","test2","test3"};
あなたはそれを行うことができます
var list = new List<string>{ "foo", "bar" };
他の一般的なデータ構造の他の一般的なインスタンス化は次のとおりです。
辞書
var dictionary = new Dictionary<string, string>
{
{ "texas", "TX" },
{ "utah", "UT" },
{ "florida", "FL" }
};
配列リスト
var array = new string[] { "foo", "bar" };
キュー
var queque = new Queue<int>(new[] { 1, 2, 3 });
スタック
var queque = new Stack<int>(new[] { 1, 2, 3 });
大部分のケースでわかるように、中括弧で値を追加するか、中括弧と値が続く新しい配列をインスタンス化するだけです。
値付きの型付きリストを作成する場合、構文は次のとおりです。
生徒のクラスが
public class Student {
public int StudentID { get; set; }
public string StudentName { get; set; }
}
次のようなリストを作成できます。
IList<Student> studentList = new List<Student>() {
new Student(){ StudentID=1, StudentName="Bill"},
new Student(){ StudentID=2, StudentName="Steve"},
new Student(){ StudentID=3, StudentName="Ram"},
new Student(){ StudentID=1, StudentName="Moin"}
};