如何使用 C 中的 Tuple

2021-10-17 03:32:56 字數 1791 閱讀 9338

開局一張圖,首先宣告的是 tuple 不是什麼新鮮概念,在程式語言 f#,python 中早就有這個了,tuple 是一種 有序的,有限不可變的,支援混雜型別的固定個數的 一種資料結構,有些朋友可能就想問了,這裡的混雜是什麼意思? 其實就是說 tuple 中的若干元素型別,即可以是同型別,也可以是不同型別。

值得注意的是,tuple 中的元素是 唯讀的,而且其元素的順序也是在 tuple 建立的時候指定好的,不能對其中的元素進行後續修改 也不能修改 tuple 的大小。

下面羅列了幾種使用 tuple 的場景:

上面三種情況都是 tuple 最擅長的應用場景,值得用 tuple 去解決。

有些朋友可能會想到匿名類,但仔細想想, 匿名類 也有其缺陷,比如說方法的返回值是不可能指定為匿名型別的,對吧。

當然 tuple 也是有缺陷的,羅列如下:

叨叨叨的說了這麼多,接下來看看如何使用,在 c# 中提供了乙個tuple類,這個類下有乙個靜態方法create可用來生成 tuple 例項,順便提一下,這個 create 方法提供了 8 個過載方法,下面展示了這些方法簽名清單。

public static class tuple

public static tuplecreate(t1 item1, t2 item2)

public static tuplecreate(t1 item1, t2 item2, t3 item3)

public static tuplecreate(t1 item1, t2 item2, t3 item3, t4 item4)

public static tuplecreate(t1 item1, t2 item2, t3 item3, t4 item4, t5 item5)

public static tuplecreate(t1 item1, t2 item2, t3 item3, t4 item4, t5 item5, t6 item6)

public static tuplecreate(t1 item1, t2 item2, t3 item3, t4 item4, t5 item5, t6 item6, t7 item7)

public static tuple> create(t1 item1, t2 item2, t3 item3, t4 item4, t5 item5, t6 item6, t7 item7, t8 item8)

}

接下來看看如何建立和初始化 tuple。

var listemployee = new list>

;

一旦你的 tuple 建立並初始化好,你可以像迭代其他集合一樣迭代 tuple,下面的**清單展示了如何去實現。

foreach (tupletuple in listemployee)

下面是完整的**清單展示了如何去 建立,初始化,迭代。

static void main(string args)

;foreach (tupletuple in listemployee)

console.read();

}

你也可以建立 巢狀的 tuple,如下**所示:

static void main(string args)

c 11中的tuple(元組)

這次要講的內容是 c 11中的tuple 元組 tuple看似簡單,其實它是簡約而不簡單,可以說它是c 11中乙個既簡單又複雜的東東,關於它簡單的一面是它很容易使用,複雜的一面是它內部隱藏了太多細節,要揭開它神秘的面紗時又比較困難。tuple是乙個固定大小的不同型別值的集合,是泛化的std pair...

python中tuple 元組 使用總結

摘自廖雪峰python學習。tuple和list唯一區別即tuple為常量,一經確定無法修改。因為tuple不可變,所以 更安全。如果可能,能用tuple代替list就盡量用tuple。in 1 a 2,3,4 in 2 a 0 out 2 2需要注意的兩點 tuple建立單個元素的時候,不能直接i...

C 中對元組理解Tuple

陣列合併了相同型別的物件,而元組合並了不同型別的物件。元組起源於函式程式語言 如f 在這些語言中頻繁使用元組。在.net4中可以支援使用元組。例如,tuple包含 個元素,tuple包含兩個元素,以此類推。例1 元組型別相同 private tuple divide int dividend,int...