错误“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”
Posted
技术标签:
【中文标题】错误“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”【英文标题】:Error "Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index" 【发布时间】:2014-04-03 14:50:49 【问题描述】:我通过更改尝试了脚本
for (int ii = 0; ii < i_f.Length; ii++)
进入
for (int ii = 0; ii < 100; ii++)
但我仍然遇到同样的错误
索引超出范围。必须是非负数且小于集合的大小。参数名称:索引
float[][] b = Enumerable.Range(0, 1143600).Select(j => new float[100]).ToArray();
float[] i_f = new float[100];
List<float> storerandomvalues = new List<float>(100);
public float Error(int itemid)
float error= 0f;
float[] i_f = b[itemid];
for (int ii = 0; ii < i_f.Length; ii++)
error += storerandomvalues[ii] * i_f[ii]; //error line
error = 1-error;
return error;
【问题讨论】:
"Index was out of range. Must be non-negative and less than the size of the collection.\r\nParameter name: index"的可能重复 如果你真的想使用那个索引器然后把那个列表变成一个数组。不要使用列表 我自己发的。那是完全不同的@Alexander 不,那是完全一样。 storerandomvalues[ii] --> 即错误,集合长度小于该迭代 【参考方案1】:您似乎没有向storerandomvalues
列表添加任何内容,您只是初始化了它的容量。 List(int) 构造函数不会向列表中添加任何内容,它只是使后备存储空间大到足以容纳 100 个项目。如果你想将某些东西初始化为固定数量的项目,你真的应该使用数组,而不是列表:
float[] storerandomvalues = new float[100];
或者,您应该调整循环条件,使其检查storerandomvalues
和 i_f
的长度,这样索引就不会超出它们的范围。
【讨论】:
以上是关于错误“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”的主要内容,如果未能解决你的问题,请参考以下文章
远程服务器返回错误: 404错误远程服务器返回错误:500错误 HttpWebResponse远程服务器返回错误:(404500) 错误。
Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误