私は、次の方法でアクセスして設定することができます多次元リストを作成しようとしています:この多次元リストの挿入を実行しようとすると、何が失われますか?
myObjectVar[1,2,3] = new MyObject();
私は次のように[,,]
をオーバーロードしているが、挿入が実行を取得することはありません。以下のコードが機能していないため、インデックスが存在するかどうかを確認する正しい方法は何ですか?
public myObject this[int x, int y, int z] {
get {
return _myObject[x][y][z];
}
set {
if(_myObject.Count < x){
_myObject.Insert(x, new List<List<myObject>>());
}
if(_myObject[x].Count < y){
_myObject[x].Insert(y, new List<myObject>());
}
if(_myObject[x][y].Count < z){
_myObject[x][y][z].Insert(z, value);
}
else{
_myObject[x][y][z] = value;
}
}
}
どのように動作しませんか?あなたはより具体的になりますか?完全なコード例を投稿できますか?これは重要な部分を欠いている部分だけです。 –
'_myObject [x] [y] [z] .Insert(z、new myObject());これは間違っています。あなたは無用な物を造っています。おそらく '_myObject [x] [y] [z] .Insert(z、value;')を書いて、 '_myObject [x] [y] [z] = value; 'を' if'のelseに入れてください。 – xanatos
@ xanatos、無用なオブジェクトを作るのは不必要に非効率ですが、それは間違っていません。 – svick