Foros del Web » Programación para mayores de 30 ;) » .NET »

Sumar en LinQ, usando Distinct

Estas en el tema de Sumar en LinQ, usando Distinct en el foro de .NET en Foros del Web. Buenas Foreros !!! Veréis, en el trabajo tengo el siguiente problema, que no soy capaz de resolver. Tengo un Objeto de tipo List<> con Elementos ...
  #1 (permalink)  
Antiguo 07/02/2013, 06:31
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Sumar en LinQ, usando Distinct

Buenas Foreros !!!

Veréis, en el trabajo tengo el siguiente problema, que no soy capaz de resolver.

Tengo un Objeto de tipo List<> con Elementos de una clase que tiene dos propiedades. Y quiero sumar una de esas propiedades, pero haciendo un distinct de la otra propiedad. Es decir:

Código:
NOMBRE IMPORTE OTRA_PROPIEDAD
Carlos                                        3                                           lo q sea
Carlos                                        3                                           lo q sea
Jesus                                         5                                           lo q sea
Jesus                                         5                                           lo q sea
Tengo una propiedad del tipo List<Persona>, que se llama PersonaList, con los 4 objetos anteriormente mencionados, y estoy intentando esto, pero sin exito.

Código:
this.PersonaList.Distinct().Sum(obj=>obj.IMPORTE);
Me lo está sumando todo, cuando en realidad, solo debería sumarme 8.... :S ¿Saben que puedo hacer?
__________________
Charlie.
  #2 (permalink)  
Antiguo 08/02/2013, 23:31
 
Fecha de Ingreso: febrero-2013
Ubicación: Arequipa
Mensajes: 14
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Sumar en LinQ, usando Distinct

A veces me pasaba que también no me funcionaba el Distinct() por alguna razon los objetos no son realmente iguales, quizas podrias probar haciendo un Select del nombre de la persona y el importe, sobre esas dos columnas hacer el Distinct() luego sumar.

O También por ahí recuerdo que en algún caso hacia un groupby, en tu caso por el nombre y el importe, (en el caso existan dos nombres iguales y diferente monto) de ahí sumabas cada "Key" en el campo importe....

Espero haberte ayudado con algunas ideas... sino avisas...

Saludos

Etiquetas: distinct, linq, usando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:45.