您现在的位置是:首页 > .NET

.NET

索引超出范围。必须为非负值并小于集合大小的解决方法

2020-11-21 11:29:59 .NET admin
首先要知道,出现该错误的原因是因为访问了集合中不存在的值。打个很简单的比如:例如现在声明了一个List对象,并且向其中插入两条数据。那么它的下标只能是从0到1,我们通过下标访问List中的值时,List[0],List[
首先要知道,出现该错误的原因是因为访问了集合中不存在的值

打个很简单的比如:
例如现在声明了一个List<int>对象,并且向其中插入两条数据。那么它的下标只能是从0到1,我们通过下标访问List<int>中的值时,List[0],List[1]都不会有错,但从List[2]开始就会报"索引超出范围。必须为非负值并小于集合大小的解决方法"的错误了,因为List<int>对象中只有两个值,而你要从中取出第三个甚至更多的值来,当然就会报错了。

示例:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Web.UI.WebControls;
usingSystem.Data;

namespaceWebApplication1
{
publicpartialclassWebForm1:System.Web.UI.Page
{
List<int>list=newList<int>();声明一个List<int>集合
protectedvoidPage_Load(objectsender,EventArgse)
{
//往集合中插入两条数据
list.Add(100);
list.Add(200);
}

protectedvoidButton1_Click(objectsender,EventArgse)
{
//开始访问集合中的值
Response.Write(list[0].ToString());//不会出错
Response.Write(list[1].ToString());//不会出错
Response.Write(list[2].ToString());//会报索引超出范围的错误,错误提示如下:
}
}
}