Enumerable.Where Metoda

Definice

Filtruje sekvenci hodnot na základě predikátu.Filters a sequence of values based on a predicate.

Přetížení

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

Filtruje sekvenci hodnot na základě predikátu.Filters a sequence of values based on a predicate.

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

Filtruje sekvenci hodnot na základě predikátu.Filters a sequence of values based on a predicate. Index každého elementu se používá v Logic funkce predikátu.Each element's index is used in the logic of the predicate function.

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

Filtruje sekvenci hodnot na základě predikátu.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 prvků source.The type of the elements of source.

Parametry

source
IEnumerable<TSource>

IEnumerable<T>, který se má filtrovatAn IEnumerable<T> to filter.

predicate
Func<TSource,Boolean>

Funkce pro otestování každého prvku podmínky.A function to test each element for a condition.

Návraty

IEnumerable<TSource>

IEnumerable<T>, který obsahuje prvky ze vstupní sekvence, která odpovídá podmínce.An IEnumerable<T> that contains elements from the input sequence that satisfy the condition.

Výjimky

source nebo predicate je null.source or predicate is null.

Příklady

Následující příklad kódu ukazuje, jak použít Where<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) k filtrování sekvence.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
Console.WriteLine(output.ToString())

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

Poznámky

Tato metoda je implementována pomocí odloženého provedení.This method is implemented by using deferred execution. Okamžitá návratová hodnota je objekt, který ukládá všechny informace, které jsou požadovány k provedení této akce.The immediate return value is an object that stores all the information that is required to perform the action. Dotaz reprezentovaný touto metodou není proveden, dokud se nevytvoří výčet objektu buď voláním metody GetEnumerator přímo, nebo pomocí foreach v jazyce Visual C# nebo For Each v 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.

V syntaxi výrazu dotazu se klauzule where (Visual C#) nebo Where (Visual Basic) překládá na vyvolání 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>).

Viz také

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

Filtruje sekvenci hodnot na základě predikátu.Filters a sequence of values based on a predicate. Index každého elementu se používá v Logic funkce predikátu.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 prvků source.The type of the elements of source.

Parametry

source
IEnumerable<TSource>

IEnumerable<T>, který se má filtrovatAn IEnumerable<T> to filter.

predicate
Func<TSource,Int32,Boolean>

Funkce pro otestování každého zdrojového elementu podmínky; druhý parametr funkce představuje index zdrojového elementu.A function to test each source element for a condition; the second parameter of the function represents the index of the source element.

Návraty

IEnumerable<TSource>

IEnumerable<T>, který obsahuje prvky ze vstupní sekvence, která odpovídá podmínce.An IEnumerable<T> that contains elements from the input sequence that satisfy the condition.

Výjimky

source nebo predicate je null.source or predicate is null.

Příklady

Následující příklad kódu ukazuje, jak použít Where<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) k filtrování sekvence na základě predikátu, který zahrnuje index každého prvku.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
Console.WriteLine(output.ToString())

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

Poznámky

Tato metoda je implementována pomocí odloženého provedení.This method is implemented by using deferred execution. Okamžitá návratová hodnota je objekt, který ukládá všechny informace, které jsou požadovány k provedení této akce.The immediate return value is an object that stores all the information that is required to perform the action. Dotaz reprezentovaný touto metodou není proveden, dokud se nevytvoří výčet objektu buď voláním metody GetEnumerator přímo, nebo pomocí foreach v jazyce Visual C# nebo For Each v 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.

První argument predicate představuje prvek, který chcete otestovat.The first argument of predicate represents the element to test. Druhý argument představuje index založený na nule elementu v rámci source.The second argument represents the zero-based index of the element within source.

Platí pro