1
ArrayList ArrAcc = new ArrayList(); 
string ArrValue = ClsContractAccount.GetAccount(LngContract, "R"); 
ArrAcc.Insert(1, ArrValue);

このクエリを実行しようとすると ArgumentOutOfRangeException が発生するのですが、何が問題なのですか?

4

6 に答える 6

5

0 インデックスから開始する必要があります

ArrAcc.Insert(0, ArrValue);
于 2012-10-09T17:23:20.253 に答える
2

ArrayListインデックスは 0 から始まるので、使用する必要があります

ArrAcc.Insert(0, ArrValue);

....またはそれ以上

ArrAcc.Add(ArrValue);

ところで、.... ArrayListの汎用List<T>バージョンを使用する必要があります: (.NET 2.0+ でサポート)。

于 2012-10-09T17:23:34.503 に答える
0

0から開始する必要があります。次のコードを使用できます。

        if (index <= arr.Count)
            arr.Insert(index, "something");
        else
            arr.Add("something");
于 2012-10-09T17:30:46.267 に答える
0

占有されていない位置に挿入することはできません。そのアイテムを追加するだけです。

于 2012-10-09T17:23:56.073 に答える
0

インデックスはカウントよりも小さくする必要があり、C# ではすべてが 0 ベースのインデックスです。だから、あなたが持っている必要がありますArrAcc.Insert(0, ArrValue);

于 2012-10-09T17:24:27.553 に答える
0

MSDNから

ArgumentOutOfRangeException は、メソッドが呼び出され、メソッドに渡された ?arguments の少なくとも 1 つが null ではなく、有効な値が含まれていない場合にスローされます。

次のようにコードを使用するには:

ArrayList ArrAcc = new ArrayList(2) {"","" };
    string ArrValue = "Salam";
    ArrAcc.Insert(1, ArrValue)
于 2012-10-09T17:38:48.743 に答える