检测阵列vb.net 2005上重复数字的最快方法

til*_*own 3 vb.net visual-studio

我有这个项目,让用户输入从1到50的5个不同的数字.但我想在保存到DB之前验证它,我将是5个唯一的数字.什么是最好和最快的方法?

Ree*_*sey 9

您可以使用HashSet(Of T)来检查:

Dim numbers As IEnumerable(Of Integer) = GetInputFromUser()
Dim hash As HashSet(Of Integer) = new HashSet(Of Integer)(numbers)

Dim unique As Boolean = hash.Count = numbers.Count()
Run Code Online (Sandbox Code Playgroud)

这比需要排序+迭代的选项更有效.


Ema*_*Ali 5

检查此代码

Private Function HasDuplicates(ByVal arr As Array) As Boolean
    For i As Integer = 0 To arr.Length - 1
        If Not arr(i) Is Nothing Then
            Dim l As Integer = Array.LastIndexOf(arr, arr(i))
            If l <> i Then Return True
        End If
    Next
    Return False
End Function
Run Code Online (Sandbox Code Playgroud)

  • 意识到如果您需要在许多元素上使用它,这将无法很好地扩展,因为它本质上是二次的。不过,对于 5 个项目,这很好。 (2认同)