C# 7부터는 ValueTuple을 사용해 요소마다 이름을 붙인 튜플을 손쉽게 만들 수 있습니다. 이름이 있는 튜플은 인덱스 대신 의미 있는 필드명으로 값에 접근할 수 있어 코드의 가독성이 크게 향상됩니다.
System.ValueTuple 패키지 설치
ValueTuple 기능을 사용하려면 먼저 System.ValueTuple 패키지를 프로젝트에 추가해야 합니다. (.NET Framework 4.7 이상 또는 .NET Core 2.0 이상에서는 기본으로 제공됩니다.)
설치 방법은 다음과 같습니다.
- Visual Studio에서 해당 프로젝트를 엽니다.
- 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
- "NuGet 패키지 관리(Manage NuGet Packages)" 메뉴를 선택합니다.
- NuGet 패키지 관리자 창이 열리면 찾아보기(Browse) 탭을 클릭합니다.
- 검색창에 "ValueTuple"을 입력하고 검색합니다.
- 목록에서 System.ValueTuple 패키지를 선택한 후 설치 버튼을 눌러 추가합니다.
예제 코드
아래 예제에서는 학생의 점수, 이름, 과목에 이름을 붙인 튜플을 생성하고, 각 요소에 지정한 이름으로 접근하는 방법을 보여줍니다.
using System;
class Program {
static void Main() {
// 이름이 있는 튜플 생성
var myTuple = (marks: 95, name: "jack", subject: "maths");
// 이름을 사용해 각 요소에 접근
Console.WriteLine("Student Marks: " + myTuple.marks);
Console.WriteLine("Student Name: " + myTuple.name);
Console.WriteLine("Student Subject: " + myTuple.subject);
}
}실행 결과
Student Marks: 95 Student Name: jack Student Subject: maths
핵심 포인트 정리
- 튜플 리터럴에서
(marks: 95, name: "jack", subject: "maths")처럼 콜론(:) 뒤에 값을 두고 앞에 이름을 지정합니다. - 생성된 튜플은
myTuple.marks,myTuple.name처럼 점(.) 표기법으로 직관적으로 접근할 수 있습니다. - ValueTuple은 값 형식(value type)이므로 참조 형식인 Tuple 클래스보다 메모리 할당 오버헤드가 적고 성능 면에서 유리합니다.