0

List<>配列のメンバーに項目を追加するにはどうすればよいですか?
以下の例を参照してください。

List<string>[] array_of_lists = new List<string>[10];
array_of_lists[1].Add("some text here");

しかし、以下のエラーがあります:

オブジェクト参照がオブジェクト インスタンスに設定されていません。

このエラーの意味と修正方法を教えてください。

4

5 に答える 5

1

List<T>arraysを混ぜたと思います。

からMSDN

このList<T>クラスは、ArrayList クラスに相当する一般的なクラスです。必要に応じてサイズが動的に増加する配列を使用してIList<T>、汎用インターフェイスを実装します。

だから、簡単に書くことができます、

List<string> array_of_lists = new List<string>();
array_of_lists.Add("some text here");
于 2013-10-11T11:05:40.490 に答える
1

問題は、配列を初期化すると、アイテムのデフォルト値で作成されることです。ほとんどの値型 (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");
于 2013-10-11T11:09:25.027 に答える
1

非常に多くの編集、変更、およびコメントされた回答の後、完全な解決策を提供したいと思います。

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");
}
于 2013-10-11T11:48:45.003 に答える
-1

宣言する:

List<List<string>> listOfList = new List<List<string>>();

追加:

listOfList.Add(new List<string> { "s1", "s2", "s3" });

本当に配列が必要でない限り。

于 2013-10-11T11:03:15.307 に答える