このドキュメントはアーカイブされており、メンテナンスされていません。

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

更新 : 2007 年 11 月

述語に基づいて値のシーケンスをフィルタ処理します。

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

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

J# では、ジェネリック API は使用できますが、新規に宣言することはできません。
JScript では、ジェネリックな型またはメソッドは使用できません。

型パラメータ

TSource

source の要素の型。

パラメータ

source
型 : System.Collections.Generic.IEnumerable<TSource>

フィルタ処理する IEnumerable<T>

predicate
型 : System.Func<TSource, Boolean>

各要素が条件を満たしているかどうかをテストする関数。

戻り値

型 : System.Collections.Generic.IEnumerable<TSource>

条件を満たす、入力シーケンスの要素を含む IEnumerable<T>

使用上の注意

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

例外条件
ArgumentNullException

source または predicatenull です。

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

クエリ式の構文では、where 句 (Visual C# の場合) または Where 句 (Visual Basic の場合) が Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) の呼び出しに変換されます。

Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) を使用してシーケンスをフィルタ処理する方法を次のコード例に示します。

List<string> fruits =
    new List<string> { "apple", "passionfruit", "banana", "mango", 
                    "orange", "blueberry", "grape", "strawberry" };

IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}
/*
 This code produces the following output:

 apple
 mango
 grape
*/



Windows Vista, Windows XP SP2, Windows Server 2003, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

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

.NET Framework

サポート対象 : 3.5

.NET Compact Framework

サポート対象 : 3.5
表示: