2010-05-03 22 views
6

Quiero eliminar los duplicados de esta lista:Cómo eliminar duplicados de una lista en C#

List<Dictionary<string, object>> val = new List<Dictionary<string, object>>(); 

no funciona si aplico distintas() de esta manera:

List<Dictionary<string, object>> result = val.Distinct().ToList<Dictionary<string, object>>() 

actualización : El problema ahora está resuelto. Usé el comando de unión de MySQL para leer la tabla de la base de datos.

+1

¿Ya hiciste esta pregunta? No puedo encontrarlo más, pero estoy seguro de que lo vi no hace tanto tiempo ... el problema con esa pregunta aún existe con este: ¿cómo se define "duplicado"? ¿Exactamente la misma instancia, las mismas teclas, las mismas claves * y * valores? –

Respuesta

4

Prueba esto:

List<Dictionary<string, object>> result = val.Distinct(new myDictionaryComparer()).ToList(); 

donde myDictionaryComparer es una Comparer Class. Puede implementar su lógica de comparación en esta clase.

+0

No necesita necesariamente ajustar su diccionario en MyClass. Simplemente puede definir una clase que implemente IEqualityComparer > y pasarlo a Distinct – digEmAll

+0

@digEmAll: ¡Sí! lo que dices es más relevante en este escenario. Gracias. Verifica mi edición – Amsakanna

0

Usted puede utilizar el siguiente método:

val.Distinct() 
+0

lo aplico, pero él no trabajó realmente. –

+0

¿Los elementos repetidos son la misma instancia? – alejandrobog

Cuestiones relacionadas