Tuple은 C#에서 특정 번호와 특정 값 순서를 갖는 데이터 구조

튜플은 서로 다른 데이터 유형의 여러 값을 가질 수 있습니다.

Tuple<T1,T2>클래스를 사용하여 사용자 지정 튜플을 정의 할 수 있습니다.

특정 시퀀스에서 사용자 정의 데이터 유형을 갖습니다.

public class Program {
    public static Tuple<string, string, int> ReturnMultipleValues()
    {
        var result = Tuple.Create<string, string, int>("value1", "value2",3);
        return result;
    }
    public static void Main() {
        var returnedvalues = ReturnMultipleValues();
        Console.WriteLine(returnedvalues);
    }
}

// (value1, value2, 3)

Tuple선언의 (T1, T2)표기법 단순화

public class Program {
    public static (string, string, int) ReturnMultipleValues()
    {
        return ("value1", "value2",3);;
    }
    public static void Main() {
        (string val1, string val2, int val3) = ReturnMultipleValues();
        Console.WriteLine("{0} {1} {2}",val1,val2,val3);
    }
}

// value1 value2 3

튜플은 이론상 무한개의 요소를 가지는 클래스를 나타냅니다. C나 Python에서 사용되는 튜플과는

개념적으로 차이가 있습니다. C#의 튜플은 몇가지 특징을 가지는데, 요소의 배열을 나타내는 싱글턴

객체를 쉽게 만들 수 있고, 한번 생성되면 요소의 길이를 변경할 수 없습니다.

또한, 클래스가 생성되면 필드의 값을 변경할 수 없으므로 약간의 주의가 필요합니다.

튜플은 .NET Framework 4.0에 새롭게 추가된 클래스로 아직까지 그렇게 많이 사용되고 있지는 않습

니다만, 2개 이상 값을 반환해야 할 떄 사용하기 좋을듯 합니다.