エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Enumerable.SkipWhile<TSource> メソッド (IEnumerable<TSource>, Func<TSource, Boolean>)

指定された条件が満たされる限り、シーケンスの要素をバイパスした後、残りの要素を返します。

名前空間:  System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

public static IEnumerable<TSource> SkipWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

型パラメーター

TSource

source の要素の型。

パラメーター

source
型 : System.Collections.Generic.IEnumerable<TSource>
返される要素が含まれる IEnumerable<T>
predicate
型 : System.Func<TSource, Boolean>
各要素が条件を満たしているかどうかをテストする関数。

戻り値

型 : System.Collections.Generic.IEnumerable<TSource>
predicate で指定されたテストに合格しない連続する最初の要素から入力シーケンスの要素を含む IEnumerable<T>

使用上の注意

Visual Basic および Visual C# では、このメソッドを、IEnumerable<TSource> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

例外条件
ArgumentNullException

source または predicatenull です。

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) メソッドは遅延実行を使用して実装されます。 アクションの実行に必要なすべての情報を格納するオブジェクトがすぐに返されます。 このメソッドによって表されるクエリは、オブジェクトの GetEnumerator メソッドを直接呼び出すか、foreach (Visual C# の場合) または For Each (Visual Basic の場合) を使用することによってオブジェクトが列挙されるまで実行されません。

このメソッドは、predicate を使用して source の各要素をテストし、結果が true の場合はその要素をスキップします。 述語関数が要素に対して false を返したら、その要素と source の残りの要素が返され、predicate は呼び出されなくなります。

predicate がシーケンス内のすべての要素に対して true を返す場合は、空の IEnumerable<T> が返されます。

TakeWhile メソッドと SkipWhile メソッドは、補完的に機能します。 シーケンス coll および純粋関数 p を指定すると、coll.TakeWhile(p) の結果と coll.SkipWhile(p) の結果が連結され、coll と同じシーケンスが返されます。

Visual Basic のクエリ式の構文では、Skip While 句が SkipWhile の呼び出しに変換されます。

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) を使用して、条件が満たされる限り、配列の要素をスキップする方法を次のコード例に示します。


            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
            */



.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

追加
表示:
© 2015 Microsoft