entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

¿Como eliminar elementos duplicados de una Lista List<T>?

Tengo una lista List<T>
y quiero eliminar los datos duplicados en la lista
tengo una lista de tipo CC pero en esta lista existen registros con valores iguales
Solo quiero extraer los valores unicos y los q no no se repiten
List<CC> listaCC=ObtenerDatos();

 public class CC
    {
        private string _Lote = String.Empty;

        public string Lote
        {
            get { return _Lote; }
            set { _Lote = value; }
        }

        private DateTime _FechaCaducidad=DateTime.Today;

        public DateTime FechaCaducidad
        {
            get { return _FechaCaducidad; }
            set { _FechaCaducidad = value; }
        }

        private int _Cantidad = 1;

        public int Cantidad
        {
            get { return _Cantidad; }
            set { _Cantidad = value; }
        }
    }

0voto

Peter comentado

¿Podrías explicar un poco mejor las cosas?

Cuando alguien se va a tomar el tiempo para darte una solución, lo mejor que puedes hacer es brindar la mayor cantidad de datos posibles. La verdad es que es difícil adivinar que es lo que quieres hacer, que es lo que tienes, cual es el problema, de que manera quieres eliminarlos, etc...

Por favor tómate 5 minutos y redacta mejor la pregunta para saber de que manera ayudarte.

Saludos.

0voto

wroque comentado

yo empezaría por revisar la fuente de datos.

1er. porque no me parece adecuado que devuelva datos duplicados.
2do. los recursos que consume, al entregar datos innecesarios.

Slds.

3 Respuestas

1voto

Sergio-Molina Puntos320

List<CC> ListaCapa = ((from s in listaCC select s).Distinct()).ToList();

0voto

Peter comentado

Si esta es la respuesta y solución a tu pregunta, por favor márcala como correcta.

Saludos.

3votos

marrdev Puntos300
IEnumerable<int> sinRepetidos= list.Distinct();

List<int> sinRepetidos = list.Distinct().ToList();

Recuerda que por la naturaleza funcional de LINQ ambas devuelven una collection nueva, y listaCC queda intacta.

1voto

bl4z3r Puntos16850

La mejor solución para tu problema es usar un Set. En este caso, desde la versión 3.5 de .Net tienes HashSet<T> donde te da una colección sin orden y que no permite duplicados.
Ahora, si es necesario mantener un orden, necesitarías tener la versión 4 de .Net para poder usar SortedSet<T>.

Advierto que es recomendable que sobrecargues el método GetHashCode de tu clase para el correcto funcionamiento de estas colecciones.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta