List<>
配列のメンバーに項目を追加するにはどうすればよいですか?
以下の例を参照してください。
List<string>[] array_of_lists = new List<string>[10];
array_of_lists[1].Add("some text here");
しかし、以下のエラーがあります:
オブジェクト参照がオブジェクト インスタンスに設定されていません。
このエラーの意味と修正方法を教えてください。
List<T>
とarraysを混ぜたと思います。
からMSDN
この
List<T>
クラスは、ArrayList クラスに相当する一般的なクラスです。必要に応じてサイズが動的に増加する配列を使用してIList<T>
、汎用インターフェイスを実装します。
だから、簡単に書くことができます、
List<string> array_of_lists = new List<string>();
array_of_lists.Add("some text here");
問題は、配列を初期化すると、アイテムのデフォルト値で作成されることです。ほとんどの値型 (int、float、vs...) のデフォルト値は 0 です。参照型 (文字列と nullable と List と他の多く) のデフォルト値は null です。
したがって、コードは次のようになります
List<string>[] list_lines_link_scanner_ar = new List<string>[int.Parse(txt_ParaCount_In_LinkScanner.Text)];
// this is the line -->
list_lines_link_scanner_ar[1] = new new List<string>();
// <----
list_lines_link_scanner_ar[1].Add("some text here");
非常に多くの編集、変更、およびコメントされた回答の後、完全な解決策を提供したいと思います。
List<string>[] array_of_lists = new List<string>[10];
for (int i = 0; i < array_of_lists.Length; i++) {
array_of_lists[i] = new List<string>();
array_of_lists[i].Add("some text here");
array_of_lists[i].Add("some other text here");
array_of_lists[i].Add("and so on");
}
宣言する:
List<List<string>> listOfList = new List<List<string>>();
追加:
listOfList.Add(new List<string> { "s1", "s2", "s3" });
本当に配列が必要でない限り。