Como posso obter os valores exclusivos de uma matriz em .net?
Pergunta
Say Eu tenho essa matriz: MyArray (0) = "aaa" MeuArray (1) = "bbb" MyArray (2) = "aaa"
Existe uma função .net que pode me dar os valores exclusivos? Eu gostaria algo assim como uma saída da função: OutputArray (0) = "aaa" OutputArray (1) = "bbb"
Solução
Supondo que você tenha .Net 3.5 / LINQ:
string[] OutputArray = MyArray.Distinct().ToArray();
Outras dicas
Uma solução poderia ser a utilização de LINQ como no exemplo a seguir:
int[] test = { 1, 2, 1, 3, 3, 4, 5 };
var res = (from t in test select t).Distinct<int>();
foreach (var i in res)
{
Console.WriteLine(i);
}
Isso seria imprimir o esperado:
1
2
3
4
5
Você pode usar um dicionário para adicioná-los com uma chave, e quando você adiciona-los verificar se a chave já existe.
string[] myarray = new string[] { "aaa", "bbb", "aaa" };
Dictionary mydict = new Dictionary();
foreach (string s in myarray) {
if (!mydict.ContainsKey(s)) mydict.Add(s, s);
}
Use a classe HashSet incluído no .NET 3.5.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow