sábado, 13 de septiembre de 2014

Funcion distinct para listas por campo especifico. C# linq

Muchas veces se necesita hacer un DISTINC BY en linq, los cuales permite devolver diversos elementos de una secuencia utilizando el comparador de igualdad, por un campo especifico.
para poder lograr esto en linq es necesario crear una funcion de extencion, como se muestra a continuacion.


public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)

 {
          return source.GroupBy(keySelector).Select(i => i.First());
 }

y para usarla 

var selectedList = list.DistinctBy(e => e.VariableName).ToList();

Espero sea de utilidad.

1 comentario: