C# ToTuple() 메서드란?
ValueTuple을 일반 Tuple(튜플)로 변환해야 하는 상황이라면 ToTuple() 메서드를 사용하면 됩니다. C#에서는 이 메서드 하나만으로 ValueTuple을 Tuple로 간편하게 변환할 수 있습니다.
참고: ValueTuple 관련 프로그램을 실행하려면 먼저 System.ValueTuple 패키지를 프로젝트에 추가해야 합니다.
System.ValueTuple 패키지 추가 방법
- Visual Studio에서 해당 프로젝트를 엽니다.
- 솔루션 탐색기(Solution Explorer)에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
- "NuGet 패키지 관리(Manage NuGet Packages)"를 선택합니다.
- NuGet 패키지 관리자 화면으로 이동합니다.
- [찾아보기(Browse)] 탭을 클릭한 뒤 "ValueTuple"을 검색합니다.
- 마지막으로 System.ValueTuple 패키지를 설치합니다.
ToTuple() 메서드 사용 예제
using System;
class Program {
static void Main() {
var val = (1, 2, 3);
// ValueTuple
Console.WriteLine("ValueTuple: " + val);
// ValueTuple을 Tuple로 변환
Tuple<int, int, int> myTuple = val.ToTuple();
Console.WriteLine("Tuple: " + myTuple);
}
}
실행 결과
ValueTuple: (1, 2, 3)
Tuple: (1, 2, 3)
ValueTuple과 Tuple의 차이점
위 예제에서 볼 수 있듯이, ToTuple() 메서드는 ValueTuple (1, 2, 3)을 동일한 값을 가진 Tuple<int, int, int> 객체로 변환합니다. 두 형식의 출력 결과는 같지만 내부적으로는 서로 다른 형식입니다.
Tuple은 참조 형식(class)인 반면, ValueTuple은 값 형식(struct)입니다. 따라서 ValueTuple이 성능 면에서 유리하고, 요소에 이름을 부여할 수 있어 가독성도 뛰어납니다. 반면 기존 코드와의 호환이 필요하거나 불변(immutable) 데이터 구조가 필요한 경우에는 Tuple을 사용하는 것이 적합합니다.