listview删除或者过滤重复项

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:56:57
我是这么写的,但是不对,提示越界
n = ListView1.ListItems.Count
For i = n To 1 Step -1
For j = 1 To n Step 1
If ListView1.ListItems(i) = ListView1.ListItems(j) Then
ListView1.ListItems.Remove (j)
n = n - 1
End If
Next j
Next i
不知道写的对不对,希望各位高手帮个忙,谢谢了

不怎么懂

呵呵
虽然我是学C#的,但是还是用VB.net给你写了这个代码
发现有几个问题:
第一:n = ListView1.Items.Count;不是你想的那样
第二:For i = n - 1 To 1 Step -1
For j = 0 To n - 2 Step 1
你的算法不对,而且ListView1.Items是从0开始计的,而不是1
最严重的在第三处
你的循环判断是否有相同的值,有得话就Remove掉,但是你想过没有,你用的是两层循环,你动态的Remove掉了一个值,但是你的n却是一个静态的,并没有减掉1,循环肯定 会报index越界,所以,建议你另用一个变量或者数组记录相同值时的i或者j,然后在循环玩了后再调用Remove方法