1 minute read

개요

Tuple이란? => 복수의 값을 리턴하여 사용할때 사용하는 C# 7.0의 기능

기본적으로 1개의 메소드에서 1개의 값을 반환, 아래의 방식으로 복수의 값을 반환할 수 있었으나,
튜플을 사용하면 한번에 복수의 값을 반환하여 사용하기 때문에 아래의 방식 대비 효율적, 깔끔하게 구현 할 수 있게 되었다.

기존의 방법

  1. out 매개변수 한정자를 통해서 여러 개의 값을 넘겨주는 방법 (비동기 메서드에서는 사용할 수 없음)
  2. System.Tuple<…> 형식을 통한 튜플 객체 할당 (튜플 객체를 따로 할당해야 하는 것도 그렇지만 코드가 길게 늘어짐)
  3. 두 개 이상의 값을 반환해야 하는 메소드마다 전달을 위한 클래스/구조체를 따로 만들기 (필요 이상으로 코드 오버헤드가 생기게 됨)
  4. dynamic 반환형을 통해 익명 타입(Anonymous types)의 객체를 반환하는 방법 (정적 자료형 검사 X, 오버헤드가 상당함)

사용법


  1. 먼저 다음과 같이 List<Tuple<»형태의 List를 생성한다.
  2. 데이터를 입력하는 방식은 일반적인 list와 같으며, 복수의 값을 넣는다는점만 다를뿐이다.
  3. 출력시에는 지정한 타입 순서대로 Item1, Item2, Item3라는 이름으로 출력할 수 있다.


예제

[예제]

using System;
using System.Collections.Generic;

namespace TupleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Tuple<int, string, string>> m_tuple_list = new List<Tuple<int, string, string>>();

            m_tuple_list.Add(new Tuple<int, string, string>(1, "result1.Title", "result1.Text"));
            m_tuple_list.Add(new Tuple<int, string, string>(2, "result2.Title", "result2.Text"));
            m_tuple_list.Add(new Tuple<int, string, string>(3, "result3.Title", "result3.Text"));
            m_tuple_list.Add(new Tuple<int, string, string>(4, "result4.Title", "result4.Text"));
            
            for(int count = 0; count < m_tuple_list.Count; count++)
            {
                Console.WriteLine("{0} : {1} : {2}", m_tuple_list[count].Item1, m_tuple_list[count].Item2, m_tuple_list[count].Item3);
            }
        }
    }
}


[출력]
2022-04-03-Tuple_002


Top