如何解决错误:索引超出范围。必须是非负数且小于集合的大小。参数名称:index [英] How to solve error: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
问题描述
我收到此代码的错误:
Hi,
I am getting error with this code:
for (int i = 0; i <= gridview.Rows.Count; i++)
{
if (!xxx.equals(gridview.Rows[i].Cells[0].Text))
{
dr = dt.NewRow();
dr[0] = */adding value*/
dt.Rows.Add(dr);
}
}
我收到此错误 gridview.Rows [ i] .Cells [0] .Text
line。
得到的错误是:
I am getting an error with this gridview.Rows[i].Cells[0].Text
line.
Error which am getting is:
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
这个错误可能是什么原因?
请帮帮我
What may be the reason for this error?
Please help me
推荐答案
取消等于:
Take off the equals:
for (int i = 0; i <= gridview.Rows.Count; i++)
成为
Becomes
for (int i = 0; i < gridview.Rows.Count; i++)
C#数组是基于零的,但是< =给你一个太多元素。
即你有10行,那么你想0..9不是0..10
C# arrays are zero based, but <= gives you one too many elements.
I.e. is you have 10 Rows, then you want 0..9 not 0..10
你好Kavithale
你必须删除for循环中的'='。
b'cosi值从0开始,例如,如果你在gridview中有10条记录。你必须考虑0到9
Hi Kavithale
You have to remove the '=' in the for loop.
b'cos "i" value is starting from 0. for example, if u have 10 records in a gridview. you have to consider 0 to 9
for (int i = 0; i < gridview.Rows.Count; i++)
{
if (!xxx.equals(gridview.Rows[i].Cells[0].Text))
{
dr = dt.NewRow();
dr[0] = */adding value*/
dt.Rows.Add(dr);
}
}
我的建议是你可以使用foreach迭代器语句来travarse gridview。
代替of
My suggestion is you can use foreach iterator statement to travarse gridview.
Instead of that
for (int i = 0; i <= gridview.Rows.Count; i++)
{
if (!xxx.Equals(gridview.Rows[i].Cells[0].Text))
{
dr = dt.NewRow();
dr[0] = */adding value*/
dt.Rows.Add(dr);
}
}
你可以使用
You can use
foreach (GridViewRow row in gridview.Rows)
{
if (!xxx.Equals(row[i].Cells[0].Text))
{
dr = dt.NewRow();
dr[0] = */adding value*/
dt.Rows.Add(dr);
}
}
它更清晰,更易读。如果您遇到意外错误,它将使我们安全。 vs< =等问题。我总是喜欢foreach导航列表实现迭代器模式的列表。
It is more cleaner and readable. It will safe us for accidental errors like you faced < vs <= etc problem. I always prefer foreach to navigate list where list implement iterator pattern.
这篇关于如何解决错误:索引超出范围。必须是非负数且小于集合的大小。参数名称:index的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!