CsharpProgramación

Utilizar Distinct() en C#

Aprenda a filtrar duplicados de colecciones con esta función útil

La función Distinct() es una herramienta valiosa en el lenguaje de programación C# que permite eliminar duplicados de colecciones. Esta función se utiliza comúnmente en situaciones donde es necesario filtrar y limpiar datos de una colección, como en la manipulación de listas, arreglos o tablas.

Ejemplo 1: Eliminar duplicados en una lista de enteros

using System.Linq;

int[] numeros = { 1, 2, 4, 5, 6, 7, 8, 4, 5 };
var sinDuplicados = numeros.Distinct().ToArray();

En este ejemplo, se utiliza la función Distinct() para eliminar los duplicados de una lista de enteros. La lista original contiene algunos números repetidos (4 y 5), pero al aplicar Distinct(), se obtiene una nueva lista sin duplicados.

Ejemplo 2: Eliminar duplicados en una lista de cadenas

using System.Linq;

string[] nombres = { "Juan", "Pedro", "Ana", "Juan", "María", "Pablo" };
var sinDuplicados = nombres.Distinct().ToArray();

En este ejemplo, se utiliza la función Distinct() para eliminar los duplicados de una lista de cadenas. La lista original contiene algunos nombres repetidos (Juan y Pedro), pero al aplicar Distinct(), se obtiene una nueva lista sin duplicados.

Ejemplo 3: Eliminar duplicados en una lista de objetos

using System;
using System.Linq;

public class Persona {
    public int Id { get; set; }
    public string Nombre { get; set; }
}

Persona[] personas = new Persona[] {
    new Persona { Id = 1, Nombre = "Juan" },
    new Persona { Id = 2, Nombre = "Pedro" },
    new Persona { Id = 3, Nombre = "Ana" },
    new Persona { Id = 4, Nombre = "Juan" },
    new Persona { Id = 5, Nombre = "María" }
};

var sinDuplicados = personas.Distinct().ToArray();

En este ejemplo, se utiliza la función Distinct() para eliminar los duplicados de una lista de objetos. La lista original contiene algunos objetos Persona repetidos (Juan), pero al aplicar Distinct(), se obtiene una nueva lista sin duplicados.

Ejemplo 4: Eliminar duplicados en una lista de tuplas

using System;
using System.Linq;
using System.Collections.Generic;

var tuplas = new List<(int, string)> { (1, "Juan"), (2, "Pedro"), (3, "Ana"), (1, "Juan"), (4, "María") };

var sinDuplicados = tuplas.Distinct().ToList();

En este ejemplo, se utiliza la función Distinct() para eliminar los duplicados de una lista de tuplas. La lista original contiene algunas tuplas repetidas (Juan), pero al aplicar Distinct(), se obtiene una nueva lista sin duplicados.

Ejemplo 5: Eliminar duplicados en una tabla de SQL

using System;
using System.Linq;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=myDatabase;Integrated Security=True";
string query = "SELECT Id, Nombre FROM Personas";

using (SqlConnection connection = new SqlConnection(connectionString)) {
    SqlCommand command = new SqlCommand(query, connection);
    connection.Open();
    
    var personas = command.ExecuteReader()
        .Cast<SqlDataRecord>()
        .GroupBy(x => x["Nombre"])
        .Select(g => g.First())
        .ToArray();
}

En este ejemplo, se utiliza la función Distinct() para eliminar los duplicados de una tabla de SQL. La consulta SQL selecciona los campos Id y Nombre de la tabla Personas, y luego se utilizan las funciones LINQ para agrupar por el campo Nombre y seleccionar solo el primer registro de cada grupo, lo que elimina los duplicados en la tabla.

Conclusión

La función Distinct() es una herramienta útil para los desarrolladores de C# que buscan eliminar duplicados de sus colecciones. Al aplicar esta función en proyectos futuros, podrás garantizar la calidad y eficiencia de tus datos al evitar errores y redundancias.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.