Como remover valores duplicados de uma array em C#

Continuando os artigos sobres vetores (arrays) em C#, hoje vamos aprender como remover valores duplicados. Se você ainda não vi os artigos anteriores, segue a lista.

  1. Vetores (Arrays) em C# com exemplos simples
  2. Como ordenar arrays em C# (com exemplos)

O método Distinct()

Em C#, não podemos remover valores de um vetor (array). Em vez disso, teremos que criar um novo array com os valores que desejamos e remover.

A boa notícia é que não precisamos criar uma estrutura de repetição com for() ou foreach() para passar valores de um array para outro, o método  Distinct() da classe Linq se encarrega deste processo.

O exemplo a seguir obtém valores distintos de uma matriz usando o método Distinct() e cria uma nova matriz.

using System;
using System.Linq; // <-- Não esquecer de importar a classe Linq

					
public class Program
{
	public static void Main()
	{
		int[] numeros = { 1, 2, 3, 4, 3, 55, 23, 2 };
		int[] retiraDuplicados = numeros.Distinct().ToArray();
		
		Console.WriteLine("Arrays de Números Duplicados:");
		foreach(int item in numeros) Console.WriteLine(item);
		
		Console.WriteLine("\n\nNova Array com duplicados removidos:");
		foreach(int item in retiraDuplicados) Console.WriteLine(item);
	}
}
Resultado do código

Também é possível remover strings duplicadas.

using System;
using System.Linq; // <-- Não esquecer de importar a classe Linq

					
public class Program
{
	public static void Main()
	{
		string[] animais = { "Gato", "Macaco", "Gato", "Papagaio", "Gato", "Cachorro" };
 		string[] retiraDuplicados = animais.Distinct().ToArray();
		
		Console.WriteLine("\n\nNova Array com duplicados removidos:");
		Array.ForEach(retiraDuplicados, v => Console.WriteLine(v));
		/* OBS: o uso do foreach() não funciona bem aqui pois ele lida apenas com inteiros, 
		por se tratar de String, podemos usaro Array.ForEach() no lugar */
	}
}

Qualquer dúvida, deixe um comentário!

aprender C#Remover valores duplicados array C#remover valores repetidos array C#tutorial array C#vetor em C#