linq
Korzystanie z Linq Take while And Skip While
Szukaj…
Wprowadzenie
Operacje Take, Skip, TakeWhile i SkipWhile nazywane są operatorami partycjonowania, ponieważ uzyskują one sekwencję sekwencji wejściowej określoną przez dany warunek. Omówmy tych operatorów
Wybierz metodę
Metoda Take Przenosi elementy do określonej pozycji, zaczynając od pierwszego elementu w sekwencji. Podpis Take:
Public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source,int count);
Przykład:
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var TakeFirstFiveElement = numbers.Take(5);
Wynik:
Wynik to 1,5,8,4 i 9, aby uzyskać pięć elementów.
Pomiń metodę
Pomija elementy do określonej pozycji, zaczynając od pierwszego elementu w sekwencji.
Podpis Skip:
Public static IEnumerable Skip(this IEnumerable source,int count);
Przykład
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.Take(5);
Wyjście: Wynik to 3,6,7,2 i 0, aby uzyskać element.
TakeWhile ():
Zwraca elementy z danej kolekcji, dopóki określony warunek nie zostanie spełniony. Jeśli pierwszy element sam nie spełnia warunku, zwraca pustą kolekcję.
Podpis TakeWhile ():
Public static IEnumerable <TSource> TakeWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,bool>,predicate);
Kolejna sygnatura przeciążenia:
Public static IEnumerable <TSource> TakeWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,int,bool>,predicate);
Przykład I:
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.TakeWhile(n => n < 9);
Wynik:
Wróci z Eleament 1,5,8 i 4
Przykład II:
int[] numbers = { 1, 2, 3, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.TakeWhile((n,Index) => n < index);
Wynik:
Zwróci element 1,2,3 i 4
SkipWhile ()
Pomija elementy na podstawie warunku, dopóki element nie spełni warunku. Jeśli pierwszy element sam nie spełnia warunku, pomija 0 elementów i zwraca wszystkie elementy w sekwencji.
Podpis SkipWhile ():
Public static IEnumerable <TSource> SkipWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,bool>,predicate);
Kolejna sygnatura przeciążenia:
Public static IEnumerable <TSource> SkipWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,int,bool>,predicate);
Przykład I:
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.SkipWhile(n => n < 9);
Wynik:
Zwróci element 9,3,6,7,2 i 0.
Przykład II:
int[] numbers = { 4, 5, 8, 1, 9, 3, 6, 7, 2, 0 };
var indexed = numbers.SkipWhile((n, index) => n > index);
Wynik:
Zwróci element 1,9,3,6,7,2 i 0.