Operadores de LINQ

Páginas: 64 (15919 palabras) Publicado: 20 de noviembre de 2015
Operadores de LINQ
Jesús Rodríguez Rodríguez

 

Operadores de LINQ
Primera Edición, Mayo de 2010
http://www.foxandxss.net
Libro publicado bajo la licencia Creative Commons

 

2

3

Operadores de LINQ
OPERADORES DE LINQ



1. FILTERING (FILTRADO)



1.1 OFTYPE
1.2 WHERE




2. PROJECTION (PROYECCIÓN)



2.1 SELECT



3. PARTITIONING (PARTICIONADO)

17 

3.1 SKIP
3.2 SKIPWHILE
3.4TAKEWHILE

17 
18 
21 

4. JOIN (UNIÓN)

23 

4.1 GROUPJOIN

23 

5. CONCATENATION (CONCATENACIÓN)

32 

5.1 CONCAT

32 

6. ORDERING (ORDENACIÓN)

33 

6.1 ORDERBY
6.2 ORDERBYDESCENDING
6.3 REVERSE
6.4 THENBY
6.5 THENBYDESCENDING

33 
35 
38 
39 
42 

7. GROUPING (AGRUPACIÓN)

45 

Operadores de LINQ
7.1 GROUPBY
7.2 TOLOOKUP

45 
55 

8. SET (CONJUNTO)

60 

8.1 DISTINCT

60 

8. SET (CONJUNTO)62 

8.3 INTERSECT
8.4 UNION

64 
67 

9. CONVERSION (CONVERSIÓN)

70 

9.1 ASENUMERABLE
9.2 ASQUERYABLE
9.3 CAST
9.4 TOARRAY
9.5 TODICTIONARY
9.6 TOLIST

70 
71 
72 
73 
74 
78 

10. EQUALITY (IGUALDAD)

80 

10.1 SEQUENCEEQUAL

80 

11. ELEMENT (ELEMENTO)

82 

11.1 ELEMENTAT
11.2 ELEMENTATORDEFAULT
11.3 FIRST
11.4 FIRSTORDEFAULT
11.5 LAST
11.6 LASTORDEFAULT
11.7 SINGLE
11.8 SINGLEORDEFAULT82 
82 
83 
84 
85 
87 
88 
89 

4

5

Operadores de LINQ
12. GENERATION (GENERACIÓN)

91 

12.1 DEFAULTIFEMPTY
12.2 EMPTY
12.3 RANGE
12.4 REPEAT

91 
92 
93 
94 

13. QUANTIFIER (CUANTIFICADORES)

95 

13.1 ALL
13.2 ANY
13.3 CONTAINS

95 
96 
97 

14. AGGREGATION (AGREGACIÓN)

100 

14.1 AGGREGATE
14.2 AVERAGE
14.3 COUNT
14.4 LONGCOUNT
14.5 MAX
14.6 MIN
14.7 SUM

100 
102 
104 
105 
106 
108 
109  1. Filtering (Filtrado)

1. Filtering (Filtrado)
1.1 OfType
El operador OfType nos permite filtrar una secuencia dado un tipo.

1.1.1 Código necesario para los ejemplos
Lista de objetos al azar:
object[] objetos = { "LINQ", 1, 23.4F, "Perro",
new object(), "Casa" };

1.1.2 OfType
public static IEnumerable OfType(
this IEnumerable source
)

Le especificamos el tipo que queremosfiltrar y nos devuelve una
enumeración de dicho tipo.
Por ejemplo, si queremos solo los elementos del tipo string usamos el
operador OfType para filtrar esa secuencia:
IEnumerable cadenas = objetos.OfType();

Si imprimimos el resultado, la salida sería:
LINQ
Perro
Casa

6

7

Operadores de LINQ

1.2 Where
El operador Where nos permite filtrar una secuencia, pero a diferencia
deOfType, el operador Where es mucho más flexible puesto que admite
como parámetro un delegado.

1.2.1 Código necesario para los ejemplos
Lista de títulos (imaginarios) de libros:
var libros = new List
{
"Programando en C#",
"LINQ para torpes",
"WPF para todos",
"Empezando con LINQ",
"LINQ Avanzado"
};

1.2.2 Where estándar
public static IEnumerable Where(
thisIEnumerable source,
Func predicate
)

En este caso Where acepta un delegado el cual recibe como parámetro
un elemento de la secuencia y nos devuelve un bool que nos indica si ese
elemento se filtra o no. El operador devuelve una enumeración con los
elementos filtrados.
Queremos una nueva lista de libros donde sólo estén los que sean de
LINQ, para ello usamos Where.
IEnumerablelibrosLINQ = libros.Where(
libro => libro.Contains("LINQ"));

Además, el operador Where se puede convertir a la sintaxis de un query
expression:
IEnumerable librosLINQ = from libro in libros
where libro.Contains("LINQ")
select libro;

1. Filtering (Filtrado)
En ambos casos, el resultado de imprimirlo sería:
LINQ para torpes
Empezando con LINQ
LINQ Avanzado

1.2.3 Where + índice
public staticIEnumerable Where(
this IEnumerable source,
Func predicate
)

En este caso, el delegado acepta también un int el cual representa la
posición de cada elemento en la secuencia que estamos filtrando.
Así que si por ejemplo queremos aquellos libros de LINQ que estén
dentro de las 3 primeras posiciones de la secuencia, podemos usar el
siguiente...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Linq
  • Linq
  • Linq
  • Linq
  • linq
  • Linq
  • LinQ
  • Linq

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS