首页 新闻 会员 周边 捐助

list集合怎么判断一个值不等于上一个值

0
悬赏园豆:20 [已解决问题] 解决于 2012-04-07 13:41

比方说我要怎么判断第list[i]的值跟第list[i-1]的值

我这样写的

if (list[i] != list[i-1])
{

.......
}

但是老是报这个错:索引超出范围。必须为非负值并小于集合大小。

到底要怎么写?

路晚歌的主页 路晚歌 | 初学一级 | 园豆:3
提问于:2012-04-05 16:33
< >
分享
最佳答案
0

list中的i,必須是 在0 和 list.count()之間的。

收获园豆:20
無限遐想 | 老鸟四级 |园豆:3740 | 2012-04-05 16:34
其他回答(6)
0

这位盆友是不是循环从0开始的,那么i=0,so 0-1=-1 ...

哇~怪兽 | 园豆:622 (小虾三级) | 2012-04-05 16:35
0

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]越界
{

}
}
水牛刀刀 | 园豆:6350 (大侠五级) | 2012-04-05 16:39
0

嗯 这位朋友你的下标我想应该是从0 开始的。所以一进循环的时候就报错了i=0->i-1=-1 下标越界。所以朋友你应该从1开始 这样就可以了

聆听黑夜 | 园豆:168 (初学一级) | 2012-04-05 16:51
0

可以用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
{

}
}
}


 

雨之秋水 | 园豆:649 (小虾三级) | 2012-04-05 16:51
0

调试,VS的一个重要的功能是调试。这是一个很显然的错误,你通过调试一定可以调试出问题在哪儿的。

玉开 | 园豆:8822 (大侠五级) | 2012-04-05 18:11
0

  if(i>0){

if (list[i] != list[i-1])
{

.......
}

}

wlz0815 | 园豆:587 (小虾三级) | 2012-04-06 18:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册