ArrayListMerge - Merging two ArrayList avoiding duplicate values
' Merge two ArrayList, avoiding duplicate values (if there are already
' duplicate values in same input ArrayList however, they are not discarded)
'
' Example:
' Dim al1 As New ArrayList
' al1.Add("John")
' al1.Add("Ann")
' al1.Add("Frank")
'
' Dim al2 As New ArrayList
' al2.Add("Ann")
' al2.Add("Tony")
' al2.Add("Mark")
' al2.Add("John")
'
' Dim al3 As ArrayList = ArrayListMerge(al1, al2)
' Dim o As Object
' Debug.WriteLine("Number of elements in the ArrayList returned from
' ArrayListMerge: " & al3.Count)
' For Each o In al3
' Debug.WriteLine(o)
' Next
Function ArrayListMerge(ByVal al1 As ArrayList, ByVal al2 As ArrayList) As _
ArrayList
' initialize the capacity to the total count of elements from both array
' lists
Dim res As New ArrayList(al1.Count + al2.Count)
' append the items in the first ArrayList
res.AddRange(al1)
Dim o As Object
For Each o In al2
' add all the al2's elements that are not contained in al1
If Not al1.Contains(o) Then
res.Add(o)
End If
Next
' trim the ArrayList to the number of actually used slots
res.TrimToSize()
Return res
End Function