1

こんにちは、直前に宣言されたオブジェクトのコレクションを完成させることが不可能な理由がわかりません。

これが私の宣言ですオブジェクトのリストのリストです。(オブジェクトのリストを参照リストに保存したい):

private List<List<Classes.instancedModel>> listInstance;

コンストラクターで初期化します

listInstance = new List<List<Classes.instancedModel>>();

リストをループで完了する前に、リストの最初の配列を初期化しますが、できません...

listInstance[0] = new List<Classes.instancedModel>();
listInstance[0].Add(new instancedModel(1, position_model_origin, new Vector3(0, 0, 0), 1, Game));

ただし、次のタイプの例外をスローします:ArgumentOutOfRangeException

誰かが私の例として2つの動的リストを宣言し、フライを埋める方法を私に説明できますか?リストをリストに入れる

4

4 に答える 4

7

リストは配列ではありません。少なくともアイテムがない限り、インデクサーでアクセスすることはできません。

listInstance[0] = new List<Classes.instancedModel>(); <--- NO!!

listInstance.Add(new List<Classes.instancedModel>()); <--- YES!!
于 2013-02-07T14:38:29.493 に答える
1

実際に必要なのは、リストにアイテムを追加することです。

listInstance.Add(new List<Classes.instancedModel>()); //listInstance is List not an array

List<T>Array同じではありません。電話をかけるときは、インデクサーを呼び出しinstanceOfList[index]ます。そして、インデクサーが要素を見つけられない場合は、をスロー します。indexArgumentOutOfRangeException

于 2013-02-07T14:38:17.937 に答える
1

インデックスを使用する前に、まずAddメソッドを呼び出す必要があります。

private List<List<instancedModel>> listInstance;
listInstance = new List<List<instancedModel>>();

listInstance.Add(new List<Classes.instancedModel>());

listInstance[0].Add(new instancedModel(1, position_model_origin, new Vector3(0, 0, 0), 1, Game));
于 2013-02-07T14:38:57.730 に答える
1

listInstance [0]は、作成するまで存在しません。リストを作成しただけで、何も追加していません。

var listInstance = new List<List<instancedModel>>();

listInstance.Add(new List<instancedModel> {
    new instancedModel(1, position_model_origin, new Vector3(0, 0, 0), 1, Game)
});
于 2013-02-07T14:42:15.843 に答える