linq
LinqはTakeを使いながらSkip Whileを使う
サーチ…
前書き
Take、Skip、TakeWhile、およびSkipWhileはすべて、与えられた条件によって決定される入力シーケンスのセクションを取得するため、パーティショニング演算子と呼ばれます。これらの演算子について説明しましょう
テイクメソッド
Takeメソッドシーケンス内の最初の要素から始まる指定された位置まで要素を受け取ります。 テイクの署名:
Public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source,int count);
例:
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var TakeFirstFiveElement = numbers.Take(5);
出力:
結果は1,5,8,4、そして5つの要素を得るための9です。
スキップ方法
シーケンス内の最初の要素から始まる指定された位置まで要素をスキップします。
スキップの署名:
Public static IEnumerable Skip(this IEnumerable source,int count);
例
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.Take(5);
出力:結果は要素を取得するために3,6,7,2および0です。
TakeWhile():
指定した条件がtrueになるまで、指定されたコレクションの要素を返します。最初の要素自体が条件を満たさない場合、空のコレクションを返します。
TakeWhileの署名():
Public static IEnumerable <TSource> TakeWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,bool>,predicate);
別のオーバーロードシグネチャ:
Public static IEnumerable <TSource> TakeWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,int,bool>,predicate);
例I:
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.TakeWhile(n => n < 9);
出力:
それはeleamentの返すだろう1,5,8と4
実施例II:
int[] numbers = { 1, 2, 3, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.TakeWhile((n,Index) => n < index);
出力:
要素1,2,3および4を返します。
SkipWhile()
要素が条件を満たさなくなるまで、条件に基づいて要素をスキップします。最初の要素自体が条件を満たさない場合は、0要素をスキップして、シーケンス内のすべての要素を返します。
SkipWhileの署名():
Public static IEnumerable <TSource> SkipWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,bool>,predicate);
別のオーバーロードシグネチャ:
Public static IEnumerable <TSource> SkipWhile<TSource>(this IEnumerable <TSource> source,Func<TSource,int,bool>,predicate);
例I:
int[] numbers = { 1, 5, 8, 4, 9, 3, 6, 7, 2, 0 };
var SkipFirstFiveElement = numbers.SkipWhile(n => n < 9);
出力:
要素9,3,6,7,2および0を返します。
実施例II:
int[] numbers = { 4, 5, 8, 1, 9, 3, 6, 7, 2, 0 };
var indexed = numbers.SkipWhile((n, index) => n > index);
出力:
要素1,9,3,6,7,2および0を返します。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow