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

来自MSDN

当调用方法并且传递给该方法的至少一个 ?arguments 不为 null 且不包含有效值时,将引发 ArgumentOutOfRangeException。

可以使用您的代码如下:

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

您不能插入未被占用的位置。您可以添加该项目。

于 2012-10-09T17:23:56.073 回答
0

您的索引应该小于 Count 并且在 C# 中一切都是基于 0 的索引。所以,你应该有ArrAcc.Insert(0, ArrValue);

于 2012-10-09T17:24:27.553 回答
0

必须从 0 开始。可以使用以下代码:

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