方法 : クエリ式で暗黙的に型指定されるローカル変数および配列を使用する (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);
}