在VB.net中,数据去重有什么方法
方法1:使用HashSet<T>(适用于.NET Framework 3.5及以上版本) |
---|
' 假设我们有一个ArrayList,但我们将其转换为List(Of T),因为HashSet<T>更适合集合操作
Dim list As New List(Of String) From {"Apple", "Banana", "Apple", "Orange", "Banana"}
' 创建一个新的HashSet,它不允许重复元素
Dim hashSet As New HashSet(Of String)
' 将列表中的元素添加到HashSet,重复的会被自动过滤
For Each item In list
hashSet.Add(item)
Next
' 最后,将不重复的元素转换回List
Dim uniqueList As List(Of String) = hashSet.ToList()
Console.WriteLine(String.Join(", ", uniqueList)) ' 输出: Apple, Banana, Orange
方法2:使用Linq(适用于.NET Framework 3.5及以上版本) |
---|
' 假设我们有一个ArrayList,我们可以直接转换并使用Linq的Distinct方法
Dim arraylist As New ArrayList From {"Apple", "Banana", "Apple", "Orange", "Banana"}
Dim distinctItems As List(Of String) = (From item In arraylist.Cast(Of String)() Select item).Distinct().ToList()
Console.WriteLine(String.Join(", ", distinctItems))
' 输出: Apple, Banana, Orange
方法3:用字典对数据去重在VB.NET中,你可以使用`Dictionary<TKey, TValue>`类(在.NET Framework和.NET Core中)来去除重复的数据。字典类不允许重复的键(Key),因此可以用来高效地去除一列或多列数据中的重复项。以下是一个简单的示例,展示如何使用字典去除一个整数列表中的重复项: |
---|
Imports System.Collections.Generic
Module Module1
Sub Main()
' 假设我们有一组整数,可能存在重复
Dim numbersList As New List(Of Integer) From {1, 2, 3, 2, 4, 3, 5}
' 创建一个空的字典
Dim numberDict As New Dictionary(Of Integer, Boolean)
' 遍历列表,尝试将每个数字作为键放入字典,如果键已存在则不会添加
For Each num In numbersList
If Not numberDict.ContainsKey(num) Then
numberDict.Add(num, True)
End If
Next
' 从字典的键获取不重复的数字列表
Dim uniqueNumbers As New List(Of Integer)(numberDict.Keys)
' 输出去重后的数字列表
For Each uniqueNum In uniqueNumbers
Console.WriteLine(uniqueNum)
Next
Console.ReadLine()
End Sub
End Module
VB.NET和C#通用知识点学习笔记
序 | 列表 |
---|---|
1 | 在VBA或VB.net中Split()与Replace()的用法 |
2 | 在VB.net中,List(of string())与List(of List(of string))有什么区别 |
3 | VB.net中,List有什么方法与属性 |
4 | 在VB.net中,Stopwatch有什么属性与方法 |
5 | VB.net的多线程System.Threading |
6 | VB.NET中,多线程的学习笔记(一) |
7 | VB.net中Listbox |