Tuple 類別的使用

 

有時候呼叫一個方法需要一次回傳多個值回來,

通常我只能再創一個關連性不高、只是為了應付一次回傳多個值回來的class,

而該class在未來維護又遇到時,我會覺得很多餘,而且會突然想不出他是做什麼用的,

該必要的class想拿掉又不行,保留又會多花維護成本,

但有了「Tuple 類別」之後,則多多少少可以減輕維護負擔。

 

使用方式如下,看了一些說明文件看似很複雜,但實際操作起來很直覺、簡單。

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var result1 = new Tuple<string>("a");
            Tuple<string, string> result2 = new Tuple<string, string>("b", "c");
            var result3 = new Tuple<string, string, string>("d", "e", "f");
            var result4 = Tuple.Create("1", "2");

            Console.WriteLine("result1.Item1 = {0}", result1.Item1);
            Console.WriteLine("result2.Item1 = {0}, result2.Item2 = {1}", result2.Item1, result2.Item2);
            Console.WriteLine("result3.Item1 = {0}, result3.Item2 = {1}, result3.Item3 = {2}", result3.Item1, result3.Item2, result3.Item3);
            Console.WriteLine("result4.Item1 = {0}, result4.Item2 = {1}", result4.Item1, result4.Item2);
            Console.ReadKey();
        }
    }
}

說明:

1、Tuple除了可使用建構函式新增物件外,還可使用另外一個Tuple靜態類別的Create方法來新增物件。

2、可以把Tuple類別想成是暫存類別,目地只是為了回傳帶有N個屬性的物件,

如果該物件有兩個屬性,則用屬性名稱Item1、Item2來存取他,最大可一次帶有八個屬性。

 

參考資料:

Tuple 類別

[C#]Tuple 簡介