Como recuperar valores únicos em um array

Veja nesta dica de Rafael Nascimento uma forma diferente de recuperar valores únicos em um array.

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

 

Artigos relacionados