0

私は以下を使用してリストを作成しました:

List<int> foo = new List<int>();

これを作成した後、任意のインデックスに値を挿入できるようにする必要があります。私が持っている場合

foo[325] = 55;

ArgumentOutOfRangeException次の詳細でanがスローされます。

Index must be within the bounds of the List.
Parameter name: index

これを修正するにはどうすればよいですか?リストにダミー値を入力し、リストが入力された後にインデックスにアクセスすることもできますが、それは厄介な解決策のようです。

4

3 に答える 3

3

List<> は、ストレージに使用する正しいデータ型ではない可能性があります。

a を使用したDictionary<int, int>()場合は、必要なインデックスを維持できます。

Dictionary<int, int> foo = new Dictionary<int, int>();

foo.Add(idx, val);

そして取得するには:

var Value = foo[idx];

実際にすべてのインデックスを使用する予定がある場合は、次のようにすることをお勧めします。

List<int> foo = Enumerable.Range(0, MaxNumber).ToList();

リストを事前に入力します。

于 2012-05-14T17:24:40.943 に答える
2

本当にランダム アクセスが必要な場合は、System.Collections.Generic.Dictionary クラスの方が適している可能性があります。

于 2012-05-14T17:25:18.260 に答える
1

おそらく、リストではなく配列を使用する必要があります。ただし、サイズを指定する必要があります。

var foo = new int[500];
foo[325] = 55;
于 2012-05-14T17:24:56.900 に答える