今日最简单最实用问题(散分):去除listbox中重复地址

2066 2003-12-19 08:45:01
今日最简单最实用问题(散分):去除listbox中重复地址
设置名为list1的listbox中已有大量地址,下面要实现去除重复地址
Private Sub cmdRemove_Click(ByVal eventSender As System.Object, ByVal eventArgs As

System.EventArgs) Handles cmdRemove.Click
Dim lstcount2 As Object
Dim lstcount1 As Object
For lstcount1 = 0 To List1.Items.Count - 1
For lstcount2 = 0 To List1.Items.Count - 1
If LCase(VB6.GetItemString(List1, lstcount2)) = LCase

(VB6.GetItemString(List1, lstcount1)) Then     
List1.Items.RemoveAt(lstcount2)
End If
Next lstcount2
Next lstcount1
End Sub

问题是:
1.上面的代码添加引用Microsoft.VisualBasic.Compatibility,如何添加。我用vb6升级到vb.net 2003,自动

添加了引用。手动添加则找不到该引用。
2.上面代码虽能去除重复,但把不该去掉的也去掉了。比如有不重复十个地址,去重处理后只剩8个。该如何改

进?
3.不用vb6兼容模式,该如何写代码。

谢谢回答。
...全文
83 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
2066 2003-12-20
  • 打赏
  • 举报
回复
已解决,我的方法是,先在csdn全文搜索,得到vb6的代码,然后升级到.net,再手工适当修改,得到代码如下:测试通过
Private Sub mnuTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTest.Click
Dim i As Short

Dim newList() As String

Dim CurId As Short
' List1.Sorted = True

With list1

ReDim Preserve newList(0)

newList(0) = .Items(0)

For i = 1 To .Items.Count - 1

CurId = UBound(newList)

If .Items(i) <> newList(CurId) Then

ReDim Preserve newList(CurId + 1)

newList(CurId + 1) = .Items(i)

End If

Next i

.Items.Clear()

For i = 0 To UBound(newList)

.Items.Add(newList(i))

Next i

End With
End Sub
2066 2003-12-20
  • 打赏
  • 举报
回复
具体点呢
refuly 2003-12-20
  • 打赏
  • 举报
回复
对啊,可以用一个数组或者是集合什么的,先转存一次,思路比较清晰
待接入自我 2003-12-19
  • 打赏
  • 举报
回复
说真的,还是弄个字符串数组暂存一下唯一的项,然后把list清空,再把数组中的项添回去.
这样来的实在,算法简单,效率很高
而且以后别人也好看懂啊~~

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧