더북(TheBook)

또한, 튜플 리터럴을 이용하여 튜플을 만드는 방법을 알았으므로 MinMax 메서드를 완전히 구현할 수도 있다. 다음에 그 예를 나타냈다.

예제 11-1 정숫값의 시퀀스로부터 최솟값과 최댓값을 단일 튜플로 반환하는 예 ▶ MinMax1.cs

static (int min, int max) MinMax(  ----- 개별 요소에 이름을 명명한 튜플 타입을 반환
    IEnumerable<int> source)
{
    using (var iterator = source.GetEnumerator())
    {
        if (!iterator.MoveNext())  ----- 빈 시퀀스는 금지
        {
            throw new InvalidOperationException(
                "Cannot find min/max of an empty sequence");
        } 
        int min = iterator.Current;
        int max = iterator.Current;
        while (iterator.MoveNext())
        {
            min = Math.Min(min, iterator.Current);
            max = Math.Max(max, iterator.Current);
        }
        return (min, max);  ----- 최솟값, 최댓값을 튜플로 생성
    }
}

 


➊ 최솟값과 최댓값을 추적하기 위한 일반 int 변수
➋ 새로운 최솟값과 최댓값으로 변수를 갱신
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.