Continuamos avanzando dentro de los operadores de consulta
de LinQ, y ahora le toca el turno a Group By. Group By es otro de los operadores de consulta de proyección,
que a grandes rasgos, nos permite desde una colección de entrada, devolver una
colección de salida agrupada, mediante un sencillo grupo de claves valor. Donde la clave estará
compuesta por los campos por los que hemos agrupados (los que forman el group by) y el valor lo formarán una
colección de elementos que comparten los mismos valores para las propiedades
que forman la clave.
martes, 24 de marzo de 2015
miércoles, 28 de enero de 2015
IEqualityComparer
Llegado a este punto, vamos a hacer un pequeño parón dentro
de los operadores de consulta, para centrarnos en una interface muy útil dentro de la comparación de nuestros
objetos, y que bajo mi opinión, mucha gente no le da la importancia que
realmente tiene, hasta llegar al punto de que muchos autores ni siquiera le
dediquen una línea dentro de libros dedicados por entero a LinQ.
En
pocas palabras, la interface IEqualityComparer<T>,
nos permite especificar nuestra propia clave de comparación, sin que para ello
tengamos que redefinir ninguno de los métodos iniciales de la clase Object. Esto nos ofrece una
versatilidad gigante, ya que podemos crear todos los que queramos según
nuestras necesidades y nuestro modo de operar. Veremos que esto será clave en
el uso de operadores como Group By,
Distinct, Union, Intersect,
etc.
sábado, 17 de enero de 2015
Proyecciones en LinQ, La cláusula Select y SelectMany
Dentro del mundo de LinQ,
las proyecciones, determinan el tipo de datos que será devuelto o proyectado
cuando sea aplicado a uno de nuestras secuencias IEnumerable<T>.
martes, 16 de diciembre de 2014
Claúsula Where
La cláusula where,
representa el elemento de filtrado dentro del mundo de LinQ, al igual que en el lenguaje SQL. Esta es una de las más usadas y de las más útiles de todas
las que componen su librería de métodos
extensores (System.Linq).
La parte más importante dentro de la cláusula Where, es el llamado ‘Predicate’, este es un Parámetro de
tipo Func<TSource, bool>
que viene a indicar la condición del filtrado. Os facilito la entrada
del blog donde se explican en detalle los delegados
anónimos Func y donde podéis ampliar información sobre estos tipos.
miércoles, 10 de diciembre de 2014
Operadores de Consulta
Dentro del universo de LinQ, tenemos dos formas diferentes
de realizar las llamadas y hacer uso de nuestros métodos de extensores de IEnumerable<T>, la primera es
haciendo uso de las Expresiones Lambda, que vendría a representar un uso
cotidiano de cualquier método extensor, y la segunda es utilizando el llamado azúcar sintáctico (formato de
consulta) y que nos permite realizar una consulta de manera muy similar a como
realizaríamos una llamada en el lenguaje SQL.
Es importante señalar que hay algunas opciones que no están
disponibles dentro del formato de consulta, aunque son las mínimas, y que
iremos viendo según vayamos estudiando los operadores (métodos extensores).