增量变量的超出范围异常

时间:2013-05-18 19:54:54

标签: c#

我离开了C#和MVC。我真的很挣以下错误,我真的没有看到它。我有一个限制列表,我想将他们的键添加到字符串[]。

int cntr = 0;
//loop through restrictions and add to array
foreach (var Restriction in this.admingroupRepository.Context.AdminRestrictions.ToList())
{
    currentRestrictionKeys[cntr] = Restriction.Key;
    cntr += 1;
}

这是我在cntr + = 1行上得到的错误:

Index was outside the bounds of the array.

我不明白这是从哪里来的,在cntr超出数组边界之前,foreach会断开吗?

1 个答案:

答案 0 :(得分:2)

您为currentRestrictionKeys分配的空间太少。但你根本不需要预先分配它;你可以使用LINQ的简单投影:

var currentRestrictionKeys = this.admingroupRepository.Context.AdminRestrictions
                                 .Select(r => r.Key)
                                 .ToArray();