方法 : クエリ式で暗黙的に型指定されるローカル変数および配列を使用する (C# プログラミング ガイド)

更新 : 2007 年 11 月

匿名型を格納するには、暗黙的に型指定されるローカル変数を使用する必要があります。暗黙的に型指定されるローカル変数は、ローカル変数の型をコンパイラで決定する (つまり、メソッドのスコープでは変数を宣言する) 場合にも使用できます。この 2 つのシナリオで、暗黙的に型指定される変数を使用する方法を次の例に示します。

暗黙的に型指定されるローカル変数は、var コンテキスト キーワードを使用して宣言します。詳細については、「暗黙的に型指定されるローカル変数 (C# プログラミング ガイド)」および「暗黙的に型指定される配列 (C# プログラミング ガイド)」を参照してください。

使用例

var キーワードが必須である (匿名型のシーケンスを生成するクエリ式を作成し、実行する) 状況でこのキーワードを使用する方法を次の例に示します。この例では、クエリ変数だけでなく、foreach ステートメントの反復変数も、var を使用して暗黙的に型指定される必要があります。

private static void QueryNames(char firstLetter)
{
    // Create the query. var is required because
    // the query produces a sequence of anonymous types.
    var studentQuery =
        from student in students
        where student.FirstName[0] == firstLetter
        select new { student.FirstName, student.LastName };

    // Execute the query.
    foreach (var student in studentQuery)
    {
        Console.WriteLine("First = {0}, Last = {1}", student.FirstName, student.LastName);
    }
}

このトピックの後の例では、必須ではないものの、構文を簡略化するために var キーワードを使用する方法を示します。この構造を示すために、クエリ変数だけが暗黙的に型指定されています。foreach ステートメントの反復変数は明示的に型指定されていますが、var を使用して宣言することもできます。var 自体は型ではなく、コンパイラ対して型を推論して代入するように指示する命令です。

var queryID =
    from student in students
    where student.ID > 111
    select student.LastName;

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

参照

概念

C# プログラミング ガイド

LINQ クエリ式 (C# プログラミング ガイド)

参照

拡張メソッド (C# プログラミング ガイド)

var (C# リファレンス)

その他の技術情報

統合言語クエリ (LINQ: Language-Integrated Query)