Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/01/2016, 15:35
pablOOO5
(Desactivado)
 
Fecha de Ingreso: febrero-2014
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: comparar listas

Bueno, como dice el dicho lo que es dificil de explicar es dificil de hacer. En fin, ya lo solucione y volvi para compartir el codigo por si algun dia le sirve:

Código c#:
Ver original
  1. // debria devolver => { 1, 2, 2, 4, 4, 5 }
  2.             int[] listaUno = new int[] { 1, 1, 1, 2, 2, 2, 2, 3, 4, 4, 5 };
  3.             int[] listaDos = new int[] { 1, 1, 2, 2, 3 };
  4.  
  5.             var agrupUno = listaUno.GroupBy(i => i, (k, v) => new { Codigo = k, Cantidad = v.Count() }).ToArray();
  6.             var agrupDos = listaDos.GroupBy(i => i, (k, v) => new { Codigo = k, Cantidad = v.Count() }).ToArray();
  7.  
  8.             var resul = (from a1 in agrupUno
  9.                         join a2 in agrupDos
  10.                         on a1.Codigo equals a2.Codigo into lj
  11.                         from laposta in lj.DefaultIfEmpty()
  12.                         select new { Codigo = a1.Codigo, Cantidad = (laposta == null)? a1.Cantidad: (a1.Cantidad - laposta.Cantidad) }).ToArray();

Es un poco rebuscado, si alguien mas quiere aportar algo bienvenido sea.