카테고리 없음

LINQ 쿼리 작업의 형식 관계(C#)

소나무꼴 2024. 1. 4. 22:48

https://learn.microsoft.com/ko-kr/dotnet/csharp/linq/get-started/type-relationships-in-linq-query-operations

 

 

소스 데이터를 변환하지 않는 쿼리

  1. 데이터 소스의 형식 인수에 따라 범위 변수의 형식이 결정됩니다.
  2. 선택된 개체의 형식에 따라 쿼리 변수의 형식이 결정됩니다. 여기서 name은 문자열입니다. 따라서 쿼리 변수는 IEnumerable<string>입니다.
  3. 쿼리 변수는 foreach 문에서 반복됩니다. 쿼리 변수가 문자열 시퀀스이기 때문에 반복 변수도 문자열입니다

 

소스 데이터를 변환하는 쿼리

  1. 데이터 소스의 형식 인수에 따라 범위 변수의 형식이 결정됩니다.
  2. select 문은 전체 Customer 개체가 아니라 Name 속성을 반환합니다. Name이 문자열이므로 custNameQuery의 형식 인수는 Customer가 아니라 string입니다.
  3. custNameQuery가 문자열 시퀀스이므로 foreach 루프의 반복 변수도 string이어야 합니다.

 

  1. 데이터 소스의 형식 인수는 항상 쿼리의 범위 변수 형식입니다.
  2. select 문이 무명 형식을 생성하기 때문에 var을 사용하여 쿼리 변수를 암시적으로 형식화해야 합니다.
  3. 쿼리 변수의 형식이 암시적이기 때문에 foreach 루프의 반복 변수도 암시적이어야 합니다.

컴파일러에서 형식 정보를 유추하도록 허용