C#에서 열거형(Enum) 멤버끼리 비교하려면 Enum.CompareTo() 메서드를 사용합니다. 이 메서드는 현재 인스턴스와 지정한 객체를 비교하여, 현재 값이 더 크면 양수, 작으면 음수, 같으면 0을 반환합니다.
열거형 정의하기
먼저 학생들의 순위 값을 담은 열거형을 선언합니다.
enum StudentRank { Tom = 3, Henry = 2, Amit = 1 };CompareTo() 메서드로 값 비교하기
이제 compareTo() 메서드를 호출해 하나의 열거형 값을 다른 값과 비교합니다. 반환값이 0보다 큰지 검사하면 첫 번째 값이 더 큰지 쉽게 판단할 수 있습니다.
Console.WriteLine( "{0}{1}", student1.CompareTo(student2) > 0 ? "예" : "아니요", Environment.NewLine );전체 예제 코드
다음은 C#에서 열거형 멤버를 비교하는 전체 소스 코드입니다.
using System;
public class Demo {
enum StudentRank { Tom = 3, Henry = 2, Amit = 1 };
public static void Main() {
StudentRank student1 = StudentRank.Tom;
StudentRank student2 = StudentRank.Henry;
StudentRank student3 = StudentRank.Amit;
Console.WriteLine("{0}의 순위가 {1}보다 높습니까?", student1, student2);
Console.WriteLine( "{0}{1}", student1.CompareTo(student2) > 0 ? "예" : "아니요", Environment.NewLine );
}
}
실행 결과
Tom의 순위가 Henry보다 높습니까?
예
실행 결과에서 확인할 수 있듯이 Tom(3)이 Henry(2)보다 순위가 높으므로 CompareTo() 메서드는 양수를 반환하고, 그에 따라 '예'가 출력됩니다. 이처럼 CompareTo() 메서드를 활용하면 열거형 값 간의 대소 관계를 간단하게 비교할 수 있습니다.