by
by (C# 참조)
by는 컨텍스트 키워드(contextual keyword)예요. 쿼리 식의 group 절에서 "무엇을 기준으로 그룹을 나눌지"를 지정할 때 쓰죠. 다시 말해 그룹으로 묶인 항목들을 어떤 값으로 묶을지를 정하는 키워드랍니다. 자세한 내용은 group 절에서 다뤄요.
이 키워드는 C#의 초기 버전부터 컨텍스트 키워드로 존재했어요. 즉 예약어가 아니라 맥락에 따라 키워드로 동작하기 때문에, 식별자로도 쓸 수 있다는 점이 특징이에요.
본문
다음 예시는 group 절 안에서 by를 써서, 학생들을 각 학생 성(Last Name)의 첫 글자를 기준으로 묶는 코드예요.
var query = from student in students
group student by student.LastName[0];
from student in students로 학생들을 하나씩 꺼내고, group student by student.LastName[0]에서 student를 student.LastName[0] 값, 즉 성의 첫 글자별로 묶어요. 결과적으로 같은 알파벳으로 시작하는 학생들이 하나의 그룹으로 모이는 구조죠.
여기서 잠깐 짚고 갈 점이 하나 있는데요. by 키워드가 "무엇을 기준으로 나눌지"만 정해 주는 역할을 해요. 실제 그룹이 어떻게 저장되고 다뤄지는지, 결과가 어떤 형태로 나오는지는 group 절 전체의 구조에 따라 결정된답니다.