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

Jam*_*oat 1 c#

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

private readonly IList<int> _intCol = new List<int>();
Run Code Online (Sandbox Code Playgroud)

然后我将其编入索引,然后发生以下异常:

_intCol[0] = 0;
Run Code Online (Sandbox Code Playgroud)

例外:

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

Kob*_*obi 6

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

你可以用_intCol.Add(0);.

也可以看看:

如果你想以这种方式插入元素,你可以使用a Dictionary<int,int>,但请注意你的元素没有排序 - 你只需将数字映射到数字.例如:

Dictionary<int, int> integers = new Dictionary<int, int>();
integers[0] = 13;
integers[42] = 14;
Run Code Online (Sandbox Code Playgroud)

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

{42: 14, 0: 13}
Run Code Online (Sandbox Code Playgroud)