为什么List <t>在我索引时会爆炸?</t>

时间:2011-07-23 13:31:10

标签: c#

我创建了一个列表作为类级别字段,如下所示:

private readonly IList<int> _intCol = new List<int>();

然后我将其编入索引,并且会出现以下异常:

_intCol[0] = 0;

例外:

  

指数超出范围。必须是非负数且小于   collection.Parameter name:index

2 个答案:

答案 0 :(得分:6)

此时,_intCol是大小为0的列表,它在第一个位置没有元素。

您可以使用_intCol.Add(0);

另见:

如果您确实希望以这种方式插入元素,可以使用Dictionary<int,int>,但请注意您的元素不是有序的 - 您只需将数字映射到数字。例如:

Dictionary<int, int> integers = new Dictionary<int, int>();
integers[0] = 13;
integers[42] = 14;

integers现在有两个项目,没有特别的顺序:

{42: 14, 0: 13}

答案 1 :(得分:2)

如果您没有使用任何元素填充列表,那么尝试引用元素0将会失败。您应首先检查Count,而不是引用任何大于Count-1的元素索引。