on

on (C# 참조)

on은 쿼리 식의 join 절에서 조인 조건을 지정할 때 쓰는 상황에 따라 달라지는 키워드(contextual keyword)예요. 무슨 뜻인지 감이 안 오시죠? join을 쓸 때 우리는 두 데이터를 어떻게 엮을지 조건을 말해줘야 하는데, 그 '어떻게'를 붙여주는 자리가 바로 on이에요.

// on은 join 절에서 조인 조건을 지정하는 데 사용합니다.
// 예시 코드는 다음 스니펫 파일에서 확인할 수 있어요.
// snippets/csrefKeywordsContextual.cs (id="12")

join 절에서 on이 어떻게 쓰이는지, 실제 예시는 원문의 csrefKeywordsContextual.cs 스니펫(id="12")에서 함께 보시면 이해가 빨라요. on은 문맥에 따라서만 키워드로 해석되기 때문에, 이 키워드가 이름으로 쓰인 다른 코드와 충돌하지 않는 점도 기억해 두면 좋아요.

출처: on keyword - C# Reference

본문

on은 다른 키워드처럼 언제나 예약어인 게 아니라, join 절 안에서만 키워드로 동작하는 문맥적 키워드예요. 그래서 조인 조건을 적는 이 자리에서만 조인 기준이 되는 식을 on 뒤에 붙여주면 되죠.

간단히 예로 보자면, 두 컬렉션을 엮을 때 "왼쪽 항목의 이 값과 오른쪽 항목의 저 값이 같다" 같은 조건을 on 다음에 적어요. 이렇게 조건을 명확히 정해주면 쿼리 식은 그 기준에 맞춰 두 데이터를 이어 붙여요. 조건의 형태(같음, 같지 않음 등)는 join 절에서 어떻게 쓰느냐에 따라 달라져요.

더 알아보기