web-dev-qa-db-ja.com

宣言した同じ行でC#リストを初期化するにはどうすればよいですか。 (IEnumerable stringコレクションの例)

私はテストコードを書いていますが、私は書きたくないです:

List<string> nameslist = new List<string>();
nameslist.Add("one");
nameslist.Add("two");
nameslist.Add("three");

書きたい

List<string> nameslist = new List<string>({"one", "two", "three"});

ただし、{"one"、 "two"、 "three"}は "IEnumerable string Collection"ではありません。 IEnumerable文字列コレクションを使用してこれを1行で初期化するにはどうすればよいですか?

94
Johannes
var list = new List<string> { "One", "Two", "Three" };

基本的に構文は次のとおりです。

new List<Type> { Instance1, Instance2, Instance3 };

コンパイラによって次のように翻訳されます

List<string> list = new List<string>();
list.Add("One");
list.Add("Two");
list.Add("Three");
150
Matthew Abbott

コードを変更します

List<string> nameslist = new List<string> {"one", "two", "three"};

または

List<string> nameslist = new List<string>(new[] {"one", "two", "three"});
16
Adriaan Stander

括弧を失うだけです:

var nameslist = new List<string> { "one", "two", "three" };
6
Richard Fawcett
List<string> nameslist = new List<string> {"one", "two", "three"} ?
3
Romain Meresse

括弧を削除します。

List<string> nameslist = new List<string> {"one", "two", "three"};
3
Tim Robinson

使用しているC#のバージョンによって異なります。バージョン3.0以降では使用できます...

List<string> nameslist = new List<string> { "one", "two", "three" };
3
Sam Salisbury