쿼리 식에서 암시적으로 형식화된 지역 변수 및 배열을 사용하는 방법(C# 프로그래밍 가이드)
컴파일러에서 지역 변수의 형식을 확인하려는 경우 항상 암시적으로 형식화된 지역 변수를 사용할 수 있습니다. 쿼리 식에 자주 사용되는 무명 형식을 저장하려면 암시적으로 형식화된 지역 변수를 사용해야 합니다. 다음 예제에서는 쿼리에서 암시적으로 형식화된 지역 변수의 선택적 및 필수 사용을 보여 줍니다.
암시적으로 형식화된 지역 변수는 var 상황별 키워드를 사용하여 선언됩니다. 자세한 내용은 암시적으로 형식화된 지역 변수 및 암시적으로 형식화된 배열을 참조하세요.
예제
다음 예제에서는 var
키워드가 필요한 일반적인 시나리오로, 무명 형식의 시퀀스를 생성하는 쿼리 식을 보여 줍니다. 이 시나리오에서는 무명 형식의 형식 이름에 대한 액세스 권한이 없기 때문에 foreach
문의 쿼리 변수와 반복 변수가 모두 var
을 사용하여 암시적으로 형식화되어야 합니다. 무명 형식에 대한 자세한 내용은 무명 형식을 참조하세요.
private static void QueryNames(char firstLetter)
{
// Create the query. Use of var is required because
// the query produces a sequence of anonymous types:
// System.Collections.Generic.IEnumerable<????>.
var studentQuery =
from student in students
where student.FirstName[0] == firstLetter
select new { student.FirstName, student.LastName };
// Execute the query and display the results.
foreach (var anonType in studentQuery)
{
Console.WriteLine("First = {0}, Last = {1}", anonType.FirstName, anonType.LastName);
}
}
다음 예제에서는 유사하지만 var
사용이 선택 사항인 상황에서 var
키워드를 사용합니다. student.LastName
이 문자열이기 때문에 쿼리를 실행하면 문자열 시퀀스가 반환됩니다. 따라서 queryId
의 형식을 var
대신 System.Collections.Generic.IEnumerable<string>
로 선언할 수 있습니다. var
키워드는 편의상 사용됩니다. 예제에서 foreach
문의 반복 변수는 명시적으로 문자열로 형식화되었지만, 대신 var
을 사용하여 선언할 수도 있습니다. 반복 변수의 형식이 무명 형식이 아니기 때문에 var
사용은 요구 사항이 아니라 옵션입니다. var
자체는 형식이 아니라 형식을 유추하고 할당하도록 컴파일러에 지시하는 명령입니다.
// Variable queryId could be declared by using
// System.Collections.Generic.IEnumerable<string>
// instead of var.
var queryId =
from student in students
where student.Id > 111
select student.LastName;
// Variable str could be declared by using var instead of string.
foreach (string str in queryId)
{
Console.WriteLine("Last name: {0}", str);
}
참고 항목
.NET