list中的i,必須是 在0 和 list.count()之間的。
这位盆友是不是循环从0开始的,那么i=0,so 0-1=-1 ...
0<i<list.Count ,不包括0和list.Count。你可能是这么写的:
for (int i=0; i < list.Count; i++) //应改为 int i=1;
{
if (list[i] != list[i-1]) //i为0时报错,list[-1]越界
{
}
}
嗯 这位朋友你的下标我想应该是从0 开始的。所以一进循环的时候就报错了i=0->i-1=-1 下标越界。所以朋友你应该从1开始 这样就可以了
可以用for、foreach 进行比较,也可以用字典(Dictionary) 。
老是报这个错:索引超出范围。必须为非负值并小于集合大小。那是因为你循环的时候索引为0的时候你没有判定。
List<string> list = new List<string>();
for (int i = 0; i < list.Count; i++)
{
if (i!=0) //当索引为0时不能减1
{
if (list[i] != list[i-1])
{
}
else
{
}
}
}
调试,VS的一个重要的功能是调试。这是一个很显然的错误,你通过调试一定可以调试出问题在哪儿的。
if(i>0){
if (list[i] != list[i-1])
{
.......
}
}