Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 값 튜플(ValueTuple) 개념과 사용법 총정리

C#에서 값 튜플(ValueTuple)은 기존 Tuple 클래스를 값 형식(value type)으로 표현한 것입니다. 참조 형식인 일반 Tuple과 달리 스택에 할당되어 성능상 이점이 있으며, C# 7.0부터 도입되었습니다.

System.ValueTuple 패키지 설치

값 튜플을 사용하려면 System.ValueTuple 패키지가 필요합니다. .NET Framework 4.7 이상 또는 .NET Core 2.0 이상에서는 기본으로 포함되어 있지만, 하위 버전에서는 NuGet 패키지를 직접 추가해야 합니다.

NuGet 패키지 추가 방법

  • Visual Studio에서 해당 프로젝트를 엽니다.
  • 솔루션 탐색기(Solution Explorer)에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
  • "NuGet 패키지 관리(Manage NuGet Packages)"를 선택합니다.
  • NuGet 패키지 관리자 화면이 열리면 찾아보기(Browse) 탭을 클릭합니다.
  • 검색창에 "ValueTuple"을 입력하고 검색합니다.
  • System.ValueTuple 패키지를 찾아 설치합니다.

값 튜플 예제 코드

다음은 값 튜플을 선언하고 활용하는 간단한 예제입니다.

using System;

class Program {
    static void Main() {
        // 값 튜플 생성
        var val = (5, 50, 500, 5000);

        Console.WriteLine("이 프로그램을 실행하려면 System.ValueTuple 패키지가 필요합니다!");

        // Item 속성으로 요소 접근
        if (val.Item2 == 50) {
            Console.WriteLine(val);
        }
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

(5, 50, 500, 5000)

값 튜플의 주요 특징

  • 값 형식: 구조체(struct) 기반으로 동작하여 힙 할당과 가비지 컬렉션 부담이 줄어듭니다.
  • 요소 이름 지정 가능: var val = (a: 5, b: 50);처럼 각 요소에 의미 있는 이름을 붙일 수 있습니다.
  • 간결한 문법: 괄호 ()만으로 여러 값을 손쉽게 묶어 반환하거나 전달할 수 있습니다.
  • 변경 가능(Mutable): 일반 Tuple과 달리 요소 값을 수정할 수 있습니다.

값 튜플은 메서드에서 여러 값을 반환해야 할 때 별도의 클래스나 구조체를 정의하지 않고도 간편하게 처리할 수 있어 실무에서 널리 활용됩니다.