次の方法で共有


LINQ を使用した C# でのデータのフィルター処理

フィルター処理とは、指定された条件を満たす要素のみを含む結果セットを制限する操作を指します。 これは、指定された条件に一致 する要素の選択 とも呼ばれます。

Von Bedeutung

これらのサンプルでは、System.Collections.Generic.IEnumerable<T> データ ソースを使用します。 System.Linq.IQueryProvider に基づくデータ ソースでは、System.Linq.IQueryable<T> データ ソースと式ツリーが使用されます。 式ツリーには、許可される C# 構文に制限があります。 さらに、IQueryProvider などの各 データ ソースでは、より多くの制限が課される場合があります。 ご利用のデータ ソースのドキュメントをご覧ください。

次の図は、一連の文字をフィルター処理した結果を示しています。 フィルター処理操作の述語は、文字が 'A' である必要があることを指定します。

LINQ フィルター処理操作を示す図

選択を実行する標準クエリ演算子メソッドを次の表に示します。

メソッド名 説明 C# のクエリ式の構文 詳細情報
OfType 指定した型にキャストできるかどうかに基づいて、値を選択します。 適用されません。 Enumerable.OfType

Queryable.OfType
どこ 述語関数に基づく値を選択します。 where Enumerable.Where

Queryable.Where

次の例では、 where 句を使用して、特定の長さを持つ文字列を配列からフィルター処理します。

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query = from word in words
                            where word.Length == 3
                            select word;

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

次のコードでは、メソッド構文を使用した同等のクエリを示しています。

string[] words = ["the", "quick", "brown", "fox", "jumps"];

IEnumerable<string> query =
    words.Where(word => word.Length == 3);

foreach (string str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:

    the
    fox
*/

こちらも参照ください