LINQ - Operadores de consulta
Un conjunto de métodos de extensión que forman un patrón de consulta se conoce como Operadores de consulta estándar LINQ. Como bloques de construcción de expresiones de consulta LINQ, estos operadores ofrecen una gama de capacidades de consulta como filtrado, clasificación, proyección, agregación, etc.
Los operadores de consulta estándar de LINQ se pueden clasificar en los siguientes en función de su funcionalidad.
- Operadores de filtrado
- Unirse a los operadores
- Operaciones de proyección
- Operadores de clasificación
- Operadores de agrupación
- Conversions
- Concatenation
- Aggregation
- Operaciones cuantificadoras
- Operaciones de partición
- Operaciones de generación
- Establecer operaciones
- Equality
- Operadores de elementos
Operadores de filtrado
El filtrado es una operación para restringir el conjunto de resultados de modo que solo tenga elementos seleccionados que satisfagan una condición particular.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
dónde | Filtrar valores basados en una función de predicado | dónde | Dónde |
OfType | Filtrar valores según su capacidad para ser como un tipo específico | No aplica | No aplica |
Unirse a los operadores
Unirse se refiere a una operación en la que se apuntan fuentes de datos con relaciones difíciles de seguir entre sí de manera directa.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Unirse | El operador une dos secuencias sobre la base de claves coincidentes | unirse ... en ... en ... es igual a ... | Desde x In…, y In… Donde xa = ya |
GrupoUnirse | Une dos secuencias y agrupa los elementos coincidentes | unirse ... en ... en ... es igual a ... en ... | Unirse al grupo ... En ... El ... |
Operaciones de proyección
La proyección es una operación en la que un objeto se transforma en una forma completamente nueva con solo propiedades específicas.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Seleccione | El operador proyecta valores sobre la base de una función de transformación | Seleccione | Seleccione |
Seleccionar muchos | El operador proyecta las secuencias de valores que se basan en una función de transformación y las aplana en una sola secuencia. | Usar múltiples cláusulas from | Usar múltiples cláusulas From |
Operadores de clasificación
Una operación de clasificación permite ordenar los elementos de una secuencia sobre la base de uno o más atributos.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
OrderBy | El operador ordena los valores en orden ascendente | ordenar por | Ordenar por |
OrderByDescending | El operador ordena los valores en orden descendente | orden por ... descendente | Ordenar por ... Descendente |
Entonces por | Ejecuta una clasificación secundaria en orden ascendente | orderby…,… | Ordenar por…,… |
ThenByDescending | Ejecuta una clasificación secundaria en orden descendente. | orderby ..., ... descendiendo | Ordenar por…,… Descendente |
Contrarrestar | Realiza una inversión del orden de los elementos en una colección. | No aplica | No aplica |
Operadores de agrupación
Los operadores colocan los datos en algunos grupos basándose en un atributo compartido común.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Agrupar por | Organizar una secuencia de elementos en grupos y devolverlos como una colección IEnumerable de tipo IGrouping <clave, elemento> | agrupar ... por -o- grupo ... por ... en ... | Agrupar ... Por ... En ... |
Para buscar | Ejecutar una operación de agrupación en la que se devuelve una secuencia de pares de claves. | No aplica | No aplica |
Conversiones
Los operadores cambian el tipo de objetos de entrada y se utilizan en una amplia gama de aplicaciones.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
AsEnumerable | Devuelve la entrada escrita como IEnumerable <T> | No aplica | No aplica |
AsQueryable | Un IEnumerable (genérico) se convierte en un IQueryable (genérico) | No aplica | No aplica |
Emitir | Realiza la conversión de elementos de una colección a un tipo específico | Utilice una variable de rango escrita explícitamente. Por ejemplo: de la cadena str en palabras | De ... Como ... |
OfType | Filtra los valores en función de su, según su capacidad para convertirse en un tipo particular | No aplica | No aplica |
ToArray | Fuerza la ejecución de la consulta y convierte una colección en una matriz | No aplica | No aplica |
ToDictionary | Sobre la base de una función de selector de teclas, establezca elementos en un Dictionary <TKey, TValue> y fuerce la ejecución de una consulta LINQ | No aplica | No aplica |
Listar | Fuerza la ejecución de una consulta convirtiendo una colección en List <T> | No aplica | No aplica |
Para buscar | Fuerza la ejecución de una consulta y coloca elementos en una búsqueda <TKey, TElement> sobre la base de una función de selector de teclas | No aplica | No aplica |
Concatenación
Realiza la concatenación de dos secuencias y es bastante similar al operador de la Unión en términos de su funcionamiento, excepto por el hecho de que no elimina los duplicados.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Concat | Se concatenan dos secuencias para la formación de una sola secuencia. | No aplica | No aplica |
Agregación
Realiza cualquier tipo de agregación deseada y permite crear agregaciones personalizadas en LINQ.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Agregar | Opera sobre los valores de una colección para realizar una operación de agregación personalizada | No aplica | No aplica |
Promedio | Se calcula el valor medio de una colección de valores | No aplica | Agregado ... en ... en promedio () |
Contar | Cuenta los elementos que satisfacen una función de predicado dentro de la colección | No aplica | Agregado ... en ... en recuento () |
LonCount | Cuenta los elementos que satisfacen una función de predicado dentro de una colección enorme | No aplica | Agregado ... en ... en LongCount () |
Max | Descubra el valor máximo dentro de una colección | No aplica | Agregado… en… en Max () |
Min | Descubra el valor mínimo existente dentro de una colección | No aplica | Agregado… en… en min () |
Suma | Descubra la suma de valores dentro de una colección | No aplica | Agregado ... en ... en suma () |
Operaciones cuantificadoras
Estos operadores devuelven un valor booleano, es decir, verdadero o falso cuando algunos o todos los elementos de una secuencia satisfacen una condición específica.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Todas | Devuelve un valor 'Verdadero' si todos los elementos de una secuencia satisfacen una condición de predicado | No aplica | Agregar ... en ... en todos (...) |
Ninguna | Determina al buscar en una secuencia si algún elemento de la misma satisface una condición especificada | No aplica | Agregar ... en ... en cualquier () |
Contiene | Devuelve un valor 'Verdadero' si encuentra que un elemento específico está allí en una secuencia si la secuencia no contiene ese elemento específico, se devuelve un valor 'falso' | No aplica | No aplica |
Operadores de partición
Divida una secuencia de entrada en dos secciones separadas sin reorganizar los elementos de la secuencia y luego devolver uno de ellos.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Omitir | Omite un número específico de elementos dentro de una secuencia y devuelve los restantes | No aplica | Omitir |
SkipWhile | Igual que el de Skip con la única excepción de que el número de elementos para omitir se especifica mediante una condición booleana | No aplica | Saltar mientras |
Tomar | Tome un número específico de elementos de una secuencia y omita los restantes | No aplica | Tomar |
TakeWhile | Igual que el de Take, excepto el hecho de que el número de elementos a tomar se especifica mediante una condición booleana | No aplica | Tómese un tiempo |
Operaciones de generación
Los operadores generacionales crean una nueva secuencia de valores.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
DefaultIfEmpty | Cuando se aplica a una secuencia vacía, genera un elemento predeterminado dentro de una secuencia | No aplica | No aplica |
Vacío | Devuelve una secuencia de valores vacía y es el operador generacional más simple | No aplica | No aplica |
Rango | Genera una colección que tiene una secuencia de enteros o números. | No aplica | No aplica |
Repetir | Genera una secuencia que contiene valores repetidos de una longitud específica. | No aplica | No aplica |
Establecer operaciones
Hay cuatro operadores para las operaciones establecidas, cada uno de los cuales produce un resultado basado en diferentes criterios.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
Distinto | Da como resultado una lista de valores únicos de una colección al filtrar los datos duplicados, si los hay | No aplica | Distinto |
Excepto | Compara los valores de dos colecciones y devuelve los de una colección que no están en la otra colección | No aplica | No aplica |
Intersecarse | Devuelve el conjunto de valores encontrados t ser idénticos en dos colecciones separadas | No aplica | No aplica |
Unión | Combina el contenido de dos colecciones diferentes en una sola lista que también sin ningún contenido duplicado | No aplica | No aplica |
Igualdad
Compara dos oraciones (enumerables) y determina si coinciden exactamente o no.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
SequenceEqual | Da como resultado un valor booleano si se encuentra que dos secuencias son idénticas entre sí | No aplica | No aplica |
Operadores de elementos
Excepto DefaultIfEmpty, los ocho operadores de elementos de consulta estándar restantes devuelven un solo elemento de una colección.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
ElementAt | Devuelve un elemento presente dentro de un índice específico en una colección. | No aplica | No aplica |
ElementAtOrDefault | Igual que ElementAt excepto por el hecho de que también devuelve un valor predeterminado en caso de que el índice específico esté fuera de rango | No aplica | No aplica |
primero | Recupera el primer elemento dentro de una colección o el primer elemento que cumple una condición específica | No aplica | No aplica |
Primero o predeterminado | Igual que First, excepto el hecho de que también devuelve un valor predeterminado en caso de que no existan dichos elementos | No aplica | No aplica |
Último | Recupera el último elemento presente en una colección o el último elemento que cumple una condición específica | No aplica | No aplica |
LastOrDefault | Igual que Last, excepto el hecho de que también devuelve un valor predeterminado en caso de que no exista tal elemento | No aplica | No aplica |
Soltero | Devuelve el único elemento de una colección o el único elemento que cumple una determinada condición. | No aplica | No aplica |
SingleOrDefault | Igual que Single, excepto que también devuelve un valor predeterminado si no existe ningún elemento solitario. | No aplica | No aplica |
DefaultIfEmpty | Devuelve un valor predeterminado si la colección o lista está vacía o es nula | No aplica | No aplica |