Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El filtrado hace referencia al funcionamiento de restringir el conjunto de resultados para que contenga solo los elementos que cumplen una condición especificada. También se conoce como seleccionar elementos que coinciden con la condición especificada.
Importante
Estos ejemplos usan un origen de datos System.Collections.Generic.IEnumerable<T>. Los orígenes de datos basados en System.Linq.IQueryProvider usanSystem.Linq.IQueryable<T> orígenes de datos y árboles de expresión . Los árboles de expresión tienen limitaciones en la sintaxis de C# permitida. Además, cada origen de datos IQueryProvider
, como EF Core puede imponer más restricciones. Compruebe la documentación del origen de datos.
En la ilustración siguiente se muestran los resultados del filtrado de una secuencia de caracteres. El predicado de la operación de filtrado especifica que el carácter debe ser "A".
Los métodos del operador de consulta estándar que realizan la selección se muestran en la tabla siguiente:
Nombre del método | Descripción | Sintaxis de la expresión de consulta de C# | Más información |
---|---|---|---|
OfType | Selecciona valores según su capacidad de ser convertidos a un tipo específico. | No aplicable. | Enumerable.OfType Queryable.OfType |
Dónde | Selecciona valores basados en una función de predicado. | where |
Enumerable.Where Queryable.Where |
En el ejemplo siguiente se usa la where
cláusula para filtrar desde una matriz esas cadenas que tienen una longitud específica.
string[] words = ["the", "quick", "brown", "fox", "jumps"];
IEnumerable<string> query = from word in words
where word.Length == 3
select word;
foreach (string str in query)
{
Console.WriteLine(str);
}
/* This code produces the following output:
the
fox
*/
La consulta equivalente mediante la sintaxis del método se muestra en el código siguiente:
string[] words = ["the", "quick", "brown", "fox", "jumps"];
IEnumerable<string> query =
words.Where(word => word.Length == 3);
foreach (string str in query)
{
Console.WriteLine(str);
}
/* This code produces the following output:
the
fox
*/