Enumerable.SkipWhile Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy.
Przeciążenia
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. Indeks elementu jest używany w logice funkcji predykatu. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Źródło:
- Skip.cs
- Źródło:
- Skip.cs
- Źródło:
- Skip.cs
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Parametry typu
- TSource
Typ elementów elementu source
.
Parametry
- source
- IEnumerable<TSource>
Element do IEnumerable<T> zwracania elementów.
Zwraca
Element IEnumerable<T> zawierający elementy z sekwencji danych wejściowych rozpoczynający się od pierwszego elementu w serii liniowej, który nie przechodzi testu określonego przez predicate
element .
Wyjątki
source
lub predicate
to null
.
Przykłady
W poniższym przykładzie kodu pokazano, jak pominąć SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) elementy tablicy, o ile warunek jest spełniony.
int[] grades = { 59, 82, 70, 56, 92, 98, 85 };
IEnumerable<int> lowerGrades =
grades
.OrderByDescending(grade => grade)
.SkipWhile(grade => grade >= 80);
Console.WriteLine("All grades below 80:");
foreach (int grade in lowerGrades)
{
Console.WriteLine(grade);
}
/*
This code produces the following output:
All grades below 80:
70
59
56
*/
' Create an array of integers that represent grades.
Dim grades() As Integer = {59, 82, 70, 56, 92, 98, 85}
' Sort the grades in descending order and
' get all grades greater less than 80.
Dim lowerGrades As IEnumerable(Of Integer) =
grades _
.OrderByDescending(Function(grade) grade) _
.SkipWhile(Function(grade) grade >= 80)
' Display the results.
Dim output As New System.Text.StringBuilder("All grades below 80:" & vbCrLf)
For Each grade As Integer In lowerGrades
output.AppendLine(grade)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' All grades below 80:
' 70
' 59
' 56
Uwagi
Metoda SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) jest implementowana przy użyciu odroczonego wykonywania. Bezpośrednio zwracana wartość jest obiektem, który przechowuje wszystkie informacje wymagane do wykonania akcji. Zapytanie reprezentowane przez tę metodę nie jest wykonywane, dopóki obiekt nie zostanie wyliczony, wywołując metodę GetEnumerator
bezpośrednio lub używając w foreach
języku C# lub For Each
w Visual Basic.
Ta metoda sprawdza każdy element source
przy użyciu elementu predicate
i pomija element, jeśli wynik to true
. Po powrocie false
funkcji predykatu dla elementu ten element i pozostałe elementy są source
zwracane i nie ma więcej wywołań predicate
.
Jeśli predicate
zwraca true
wartość dla wszystkich elementów w sekwencji, zwracana jest pusta IEnumerable<T> wartość.
Metody TakeWhile i SkipWhile są uzupełnieniem funkcjonalnym. Biorąc pod uwagę sekwencję coll
kolekcji i czystą funkcję p
, łączenie wyników coll.TakeWhile(p)
i coll.SkipWhile(p)
zwraca tę samą sekwencję co coll
.
W składni wyrażenia zapytania języka Visual Basic klauzula Skip While
tłumaczy się na wywołanie SkipWhileelementu .
Zobacz też
Dotyczy
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Źródło:
- Skip.cs
- Źródło:
- Skip.cs
- Źródło:
- Skip.cs
Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. Indeks elementu jest używany w logice funkcji predykatu.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Parametry typu
- TSource
Typ elementów elementu source
.
Parametry
- source
- IEnumerable<TSource>
Element do IEnumerable<T> zwracania elementów.
Funkcja do testowania każdego elementu źródłowego dla warunku; drugi parametr funkcji reprezentuje indeks elementu źródłowego.
Zwraca
Element IEnumerable<T> zawierający elementy z sekwencji danych wejściowych rozpoczynający się od pierwszego elementu w serii liniowej, który nie przechodzi testu określonego przez predicate
element .
Wyjątki
source
lub predicate
to null
.
Przykłady
W poniższym przykładzie kodu pokazano, jak pominąć SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) elementy tablicy, o ile warunek zależny od indeksu elementu jest spełniony.
int[] amounts = { 5000, 2500, 9000, 8000,
6500, 4000, 1500, 5500 };
IEnumerable<int> query =
amounts.SkipWhile((amount, index) => amount > index * 1000);
foreach (int amount in query)
{
Console.WriteLine(amount);
}
/*
This code produces the following output:
4000
1500
5500
*/
' Create an array of integers.
Dim amounts() As Integer =
{5000, 2500, 9000, 8000, 6500, 4000, 1500, 5500}
' Skip items in the array whose value is greater than
' the item's index times 1000; get the remaining items.
Dim query As IEnumerable(Of Integer) =
amounts.SkipWhile(Function(amount, index) _
amount > index * 1000)
' Output the results.
Dim output As New System.Text.StringBuilder
For Each amount As Integer In query
output.AppendLine(amount)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 4000
' 1500
' 5500
Uwagi
Ta metoda jest implementowana za pomocą odroczonego wykonania. Bezpośrednio zwracana wartość jest obiektem, który przechowuje wszystkie informacje wymagane do wykonania akcji. Zapytanie reprezentowane przez tę metodę nie jest wykonywane, dopóki obiekt nie zostanie wyliczony, wywołując metodę GetEnumerator
bezpośrednio lub używając w foreach
języku C# lub For Each
w Visual Basic.
Metoda SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) testuje każdy element source
przy użyciu elementu predicate
i pomija element, jeśli wynik to true
. Po powrocie false
funkcji predykatu dla elementu ten element i pozostałe elementy są source
zwracane i nie ma więcej wywołań predicate
.
Jeśli predicate
zwraca true
wartość dla wszystkich elementów w sekwencji, zwracana jest pusta IEnumerable<T> wartość.
Pierwszy argument predicate
reprezentuje element do przetestowania. Drugi argument reprezentuje indeks zerowy elementu w obiekcie source
.
Metody TakeWhile i SkipWhile są uzupełnieniem funkcjonalnym. Biorąc pod uwagę sekwencję coll
kolekcji i czystą funkcję p
, łączenie wyników coll.TakeWhile(p)
i coll.SkipWhile(p)
zwraca tę samą sekwencję co coll
.
W składni wyrażenia zapytania języka Visual Basic klauzula Skip While
tłumaczy się na wywołanie SkipWhileelementu .