Como recuperar valores únicos em um array

 

É uma solução esperta. Use uma hashtable e preencha os elementos do array como chaves da hashtable. Quando houver duplicidade de chaves, a hashtable vai, naturalmente, retornar uma exceção. Apenas pule aquele elemento e continue o preenchimento. Para implementar esta solução, utilize recursão para adicionar os elementos do array à hashtable e no bloco Catch chame a mesma função novamente com o próximo índice. Abaixo, o código:

 

    Private strObj() As String = {"A", "A", "B", "C", "C", "D", "E"}

    Private HTUnica As New Hashtable

    Private i As Integer = 0

 

    Public Sub TesteElementoUnico()

        EncontrarElementoUnico(0)

    End Sub

 

    Private Sub EncontrarElementoUnico(ByVal indice As Integer)

 

        Try            

            For i = indice To strObj.Length - 1

            ' Começa adicionando os elementos do array como valores

            para KEY na HashTable

                HTUnica.Add(strObj(i), "QualquerValor")

                Console.WriteLine(strObj(i))

            Next

 

            Console.ReadLine()

 

        Catch ex As Exception

        ' Quando existe duplicidade para KEY na HashTable, a exceção

        será mostrada

            EncontrarElementoUnico(i + 1)

        End Try

 

    End Sub