回答:
List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" });
new
初期化した場合、別のものを渡す必要はありません{ }
Collections::Generic::List<int>^ mylist = gcnew Collections::Generic::List<int>(gcnew array<int>{0, 1, 2, 3, 4})
new String[]
は効率的ではないからですか?
()
最後に削除するだけです。
List<string> optionList = new List<string>
{ "AdditionalCardPersonAdressType", /* rest of elements */ };
List<string> optionList = new List<string>() { "AdditionalCardPersonAdressType", /* rest of elements */ };
。ここに注意して()
ください:new List<string>()
。
実際には質問していませんが、コードは
List<string> optionList = new List<string> { "string1", "string2", ..., "stringN"};
つまり、リストの後に()を付けません。
var animals = new List<string> { "bird", "dog" };
List<string> animals= new List<string> { "bird", "dog" };
上記の2つは最短の方法です。https://www.dotnetperls.com/listを参照してください
string[]
var animals = new List<string> { "bird", "dog" };
受け入れられた回答では提案されませんでした。さらに(new string[]
、回避することができる受け入れられた回答の追加コマンドがあります。
これは初期化方法であり、さらに動的にする場合はList.Add()を使用できます。
List<string> optionList = new List<string> {"AdditionalCardPersonAdressType"};
optionList.Add("AutomaticRaiseCreditLimit");
optionList.Add("CardDeliveryTimeWeekDay");
このようにして、IOから値を取得する場合、動的に割り当てられたリストに追加できます。
次のように角かっこを移動します。
var optionList = new List<string>(){"AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay"};
本当にすばらしい機能の1つは、リスト初期化子がカスタムクラスでも問題なく機能することです。IEnumerableインターフェイスを実装し、Addというメソッドを用意するだけです。
たとえば、次のようなカスタムクラスがあるとします。
class MyCustomCollection : System.Collections.IEnumerable
{
List<string> _items = new List<string>();
public void Add(string item)
{
_items.Add(item);
}
public IEnumerator GetEnumerator()
{
return _items.GetEnumerator();
}
}
これは動作します:
var myTestCollection = new MyCustomCollection()
{
"item1",
"item2"
}