Enumerable.Where Metoda

Definicja

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate.

Przeciążenia

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate. Indeks każdego elementu jest używany w logice funkcji predykatu.Each element's index is used in the logic of the predicate function.

Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate.

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)

Parametry typu

TSource

Typ elementów source.The type of the elements of source.

Parametry

source
IEnumerable<TSource>

@No__t_0 do filtrowania.An IEnumerable<T> to filter.

predicate
Func<TSource,Boolean>

Funkcja testowania każdego elementu na stanie.A function to test each element for a condition.

Zwraca

IEnumerable<TSource>

@No__t_0, który zawiera elementy z sekwencji wejściowej, które spełniają warunek.An IEnumerable<T> that contains elements from the input sequence that satisfy the condition.

Wyjątki

source lub predicate jest null.source or predicate is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) do filtrowania sekwencji.The following code example demonstrates how to use Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) to filter a sequence.

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
MsgBox(output.ToString())

' This code produces the following output:
'
' apple
' mango
' grape

Uwagi

Ta metoda jest implementowana za pomocą odroczonego wykonania.This method is implemented by using deferred execution. Bezpośrednio zwracana wartość jest obiektem, który przechowuje wszystkie informacje wymagane do wykonania akcji.The immediate return value is an object that stores all the information that is required to perform the action. Zapytanie reprezentowane przez tę metodę nie jest wykonywane do momentu wyliczenia obiektu przez wywołanie jego metody GetEnumerator bezpośrednio lub przy użyciu foreach w wizualizacji C# lub For Each w Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

W składni wyrażenia zapytania, klauzula where (wizualizacja C#) lub Where (Visual Basic) tłumaczy na wywołanie Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>).In query expression syntax, a where (Visual C#) or Where (Visual Basic) clause translates to an invocation of Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>).

Zobacz też

Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Filtruje sekwencję wartości na podstawie predykatu.Filters a sequence of values based on a predicate. Indeks każdego elementu jest używany w logice funkcji predykatu.Each element's index is used in the logic of the predicate function.

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)

Parametry typu

TSource

Typ elementów source.The type of the elements of source.

Parametry

source
IEnumerable<TSource>

@No__t_0 do filtrowania.An IEnumerable<T> to filter.

predicate
Func<TSource,Int32,Boolean>

Funkcja do testowania każdego elementu źródłowego dla warunku; drugi parametr funkcji reprezentuje indeks elementu źródłowego.A function to test each source element for a condition; the second parameter of the function represents the index of the source element.

Zwraca

IEnumerable<TSource>

@No__t_0, który zawiera elementy z sekwencji wejściowej, które spełniają warunek.An IEnumerable<T> that contains elements from the input sequence that satisfy the condition.

Wyjątki

source lub predicate jest null.source or predicate is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) do filtrowania sekwencji na podstawie predykatu, który obejmuje indeks każdego elementu.The following code example demonstrates how to use Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) to filter a sequence based on a predicate that involves the index of each element.

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
MsgBox(output.ToString())

' This code produces the following output:
'
' 0
' 20
' 15
' 40

Uwagi

Ta metoda jest implementowana za pomocą odroczonego wykonania.This method is implemented by using deferred execution. Bezpośrednio zwracana wartość jest obiektem, który przechowuje wszystkie informacje wymagane do wykonania akcji.The immediate return value is an object that stores all the information that is required to perform the action. Zapytanie reprezentowane przez tę metodę nie jest wykonywane do momentu wyliczenia obiektu przez wywołanie jego metody GetEnumerator bezpośrednio lub przy użyciu foreach w wizualizacji C# lub For Each w Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Pierwszy argument predicate reprezentuje element do przetestowania.The first argument of predicate represents the element to test. Drugi argument reprezentuje indeks (liczony od zera) elementu w source.The second argument represents the zero-based index of the element within source.

Dotyczy