English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
分区演算子はシーケンス(集合)を二分割し、その一部を返します。
メソッド | 説明 |
---|---|
Skip | シーケンスの最初の要素から始めて、要素を指定された位置にスキップします。 |
SkipWhile | 条件に一致する要素をスキップし、条件に一致しない要素までスキップします。最初の要素自体が条件に一致しない場合、0個の要素をスキップしてシーケンスのすべての要素を返します。 |
Take | シーケンスの最初の要素から始めて、要素を指定された位置に移動します。 |
TakeWhile | 最初の要素から要素を返し、条件を満たさないまでです。最初の要素自体が条件を満たさない場合、空のコレクションを返します。 |
Skip()メソッドは指定された数の要素をスキップし、残りの要素を返します。
IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", "Five" }; var newList = strList.Skip(2); foreach(var str in newList) Console.WriteLine(str);
Three Four Five
C # クエリ文法はSkip & SkipWhile演算子をサポートしていません。しかし、クエリ変数にはSkipを使用できます。/SkipWhile メソッド、または全体のクエリを括弧で囲んでから Skip を呼び出します。/SkipWhile。
以下の例では、クエリ文法でのskip演算子を示しています-VB.NET版
Dim skipResult = From s In studentList Skip 3 Select s
名前からも分かるように、LINQのSkipWhile()拡張メソッドは指定された条件がtrueになるまで集合内の要素をスキップします。どの要素の指定条件がfalseになるか一旦見つかると、残りのすべての要素を含む新しいコレクションを返します。
SkipWhile()メソッドには2種類のオーバーロードメソッドがあります。一つはFunc<TSource, bool>タイプのポリモーフィズムを受け取り、もう一つはFunc<TSource, int, bool>を受け取り、要素のインデックスを通じてポリモーフィズムを受け取ります。
以下の例では、SkipWhile()メソッドはすべての要素をスキップし、長さが等しいか大きい要素を見つけるまでです。4文字の文字列。
例:C#でSkipWhile()メソッドは長さが小さい要素をスキップします4の要素をスキップし、その後のすべての要素を返します。
IList<string> strList = new List<string>() { "One", "Two", "Three", "Four", "Five", "Six" }; var resultList = strList.SkipWhile(s => s.Length < 4); foreach(string str in resultList) Console.WriteLine(str);
Three Four Five Six
上の例では、最初の2つの要素の長さが小さいため、3、したがってSkipWhile()は最初の2つの要素をスキップし、長さが等しいか大きい要素を見つけます。4の3番目の要素。一旦長さが等しいか大きい要素を見つけると、4文字の要素、それが小さい場合でも他の要素をスキップしません。4文字。
今、以下の例を見てみましょう。この例では、SkipWhile()はどの要素もスキップしません。なぜなら、最初の要素の指定条件がfalseであるためです。
IList<string> strList = new List<string>() { "Three", "One", "Two", "Four", "Five", "Six" }; var resultList = strList.SkipWhile(s => s.Length < 4); foreach(string str in resultList) Console.WriteLine(str);
Three One Two Four Five Six
SkipWhileの二番目のオーバーロードは各要素のインデックスを渡します。以下の例を参照してください。
IList<string> strList = new List<string>() { "One", "Two", "Three", "Four", "Five", "Six" }; var result = strList.SkipWhile((s, i) => s.Length > i); foreach(string str in result) Console.WriteLine(str);
Five Six
上記の例では、ラムダ式には要素とそのインデックスが引数として含まれています。それは、文字列要素の長さがそのインデックスよりも大きくなるまでのすべての要素をスキップします。
C# 検索構文は Skip & SkipWhile 演算子をサポートしていません。しかし、クエリ変数に対して Skip を使用できます。/SkipWhile メソッド、または全体のクエリを括弧で囲んでから Skip を呼び出します。/SkipWhile ()。
Dim strList = New List(Of string) From { "One", "Two", "Three", "Four", "Five", "Six" } Dim skipWhileResult = From s In studentList Skip While s.Length < 4 Select s
Three Four Five Six