Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

FilterDuplicates - Delete duplicate items in an array

Total Hit ( 3273)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 



Click here to copy the following block
' Filter out duplicate values in an array and compact
' the array by moving items to "fill the gaps".
' Returns the number of duplicate values
'
' The array is not REDIMed, but you can do it easily using
' the following code:
'   a() is a string array
'   dups = FilterDuplicates(a())
'   If dups Then
'     ReDim Preserve a(LBound(a) To UBound(a) - dups) As String
'   End If

Function FilterDuplicates(ByVal arr As Array) As Integer
  Dim index As Integer
  Dim dups As Integer
  ' we use a hashtable to track duplicates
  Dim ht As New Collections.Hashtable(arr.Length * 2)

  For index = 0 To arr.Length - 1
    Dim value As Object = arr.GetValue(index)

    If ht.Contains(value) Then
      ' we've found a duplicate
      arr.SetValue(Nothing, index)
      dups += 1
    Else
      ' add to the hashtable (use a dummy Nothing value)
      ht.Add(value, Nothing)
      ' if we've found one or more duplicates so far
      ' we need to move elements towards lower indices
      If dups > 0 Then
        arr.SetValue(value, index - dups)
        arr.SetValue(Nothing, index)
      End If
    End If
  Next

  ' return the number of duplicates
  Return dups

End Function


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.