더북(TheBook)

Distinct()를 호출하는 것은 출력 결과에서 (2,1)을 한 번만 포함시키겠다는 의미다. 그리고 동일성 비교는 튜플의 개별 요소 단위로 이루어지므로 (2,1)은 (1,2)와 다르다.

순차성 비교에서는 튜플 내의 첫 번째 요소가 가장 중요하기 때문에 컬렉션 내의 좌표들은 x 축을 기준으로 정렬된다. x 좌표가 동일한 경우에만 y 좌표를 추가로 살펴볼 것이다. 그래서 출력 결과는 다음과 같다.

5 distinct points
Points in order:
(-1, 5)
(1, 1)
(1, 2)
(2, 1)
(10, 3)

튜플을 비교할 때 비교 방법을 따로 지정할 수는 없지만, 사용하려는 튜플 타입에 대해 IEqualityComparer<T>IComparer<T> 인터페이스를 사용자가 직접 구현하면 비교 방법을 임의로 변경할 수 있다. 하지만 그 이전에 어떤 데이터를 표현하기 위해서 튜플 대신 완전히 독립적인 사용자 정의 타입을 구현하는 것이 충분한 가치가 있는 일인지 고민해 볼 필요가 있다. 몇몇 경우에는 그저 구조를 비교하는 것만으로도 충분하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.