Enumerable.Where Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Filtra una secuencia de valores en función de un predicado.
Sobrecargas
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Filtra una secuencia de valores en función de un predicado. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Filtra una secuencia de valores en función de un predicado. El índice de cada elemento se usa en la lógica de la función de predicado. |
Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Source:
- Where.cs
- Source:
- Where.cs
- Source:
- Where.cs
Filtra una secuencia de valores en función de un predicado.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ Where(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member Where : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Parámetros de tipo
- TSource
Tipo de los elementos de source
.
Parámetros
- source
- IEnumerable<TSource>
IEnumerable<T> que se va a filtrar.
Devoluciones
IEnumerable<T> que contiene los elementos de la secuencia de entrada que satisfacen la condición.
Excepciones
source
o predicate
es null
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) para filtrar una secuencia.
List<string> fruits =
new List<string> { "apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry" };
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
foreach (string fruit in query)
{
Console.WriteLine(fruit);
}
/*
This code produces the following output:
apple
mango
grape
*/
' Create a list of strings.
Dim fruits As New List(Of String)(New String() _
{"apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry"})
' Restrict the results to those strings whose
' length is less than six.
Dim query As IEnumerable(Of String) =
fruits.Where(Function(fruit) fruit.Length < 6)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' mango
' grape
Comentarios
Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando directamente a su GetEnumerator
método o mediante foreach
en C# o For Each
en Visual Basic.
En la sintaxis de expresión de consulta, una where
cláusula (C#) o Where
(Visual Basic) se traduce en una invocación de Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>).
Consulte también
Se aplica a
Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Source:
- Where.cs
- Source:
- Where.cs
- Source:
- Where.cs
Filtra una secuencia de valores en función de un predicado. El índice de cada elemento se usa en la lógica de la función de predicado.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ Where(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> Where<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member Where : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function Where(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Parámetros de tipo
- TSource
Tipo de los elementos de source
.
Parámetros
- source
- IEnumerable<TSource>
IEnumerable<T> que se va a filtrar.
Función que va a probar cada elemento de origen para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de origen.
Devoluciones
IEnumerable<T> que contiene los elementos de la secuencia de entrada que satisfacen la condición.
Excepciones
source
o predicate
es null
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) para filtrar una secuencia basada en un predicado que implique el índice de cada elemento.
int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };
IEnumerable<int> query =
numbers.Where((number, index) => number <= index * 10);
foreach (int number in query)
{
Console.WriteLine(number);
}
/*
This code produces the following output:
0
20
15
40
*/
' Create an array of integers.
Dim numbers() As Integer = {0, 30, 20, 15, 90, 85, 40, 75}
' Restrict the results to those numbers whose
' values are less than or equal to their index times 10.
Dim query As IEnumerable(Of Integer) =
numbers.Where(Function(number, index) number <= index * 10)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each number As Integer In query
output.AppendLine(number)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 0
' 20
' 15
' 40
Comentarios
Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando directamente a su GetEnumerator
método o mediante foreach
en C# o For Each
en Visual Basic.
El primer argumento de predicate
representa el elemento que se va a probar. El segundo argumento representa el índice de base cero del elemento dentro de source
.