C# 7.0已經(jīng)出來(lái)一段時(shí)間了,大家都知道新特性里面有個(gè)對(duì)元組的優(yōu)化:ValueTuple。這里利用詳盡的例子詳解Tuple VS ValueTuple(元組類VS值元組),10分鐘讓你更了解ValueTuple的好處和用法。

如果您對(duì)Tuple足夠了解,可以直接跳過(guò)章節(jié)”回顧Tuple”,直達(dá)章節(jié)”ValueTuple詳解”,查看值元組的炫麗用法。

 

回顧Tuple

Tuple是C# 4.0時(shí)出的新特性,.Net Framework 4.0以上版本可用。

元組是一種數(shù)據(jù)結(jié)構(gòu),具有特定數(shù)量和元素序列。比如設(shè)計(jì)一個(gè)三元組數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)學(xué)生信息,一共包含三個(gè)元素,第一個(gè)是名字,第二個(gè)是年齡,第三個(gè)是身高。

元組的具體使用如下:

1.    如何創(chuàng)建元組

默認(rèn)情況.Net Framework元組僅支持1到7個(gè)元組元素,如果有8個(gè)元素或者更多,需要使用Tuple的嵌套和Rest屬性去實(shí)現(xiàn)。另外Tuple類提供創(chuàng)造元組對(duì)象的靜態(tài)方法。

  • 利用構(gòu)造函數(shù)創(chuàng)建元組:

var testTuple6 = new Tuple<int, int, int, int, int, int>(1, 2, 3, 4, 5, 6);
Console.WriteLine($"Item 1: {testTuple6.Item1}, Item 6: {testTuple6.Item6}");var testTuple10 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int, int, int>(8, 9, 10));
Console.WriteLine($"Item 1: {testTuple10.Item1}, Item 10: {testTuple10.Rest.Item3}");
  • 利用Tuple靜態(tài)方法構(gòu)建元組,最多支持八個(gè)元素:

var testTuple6 = Tuple.Create<int, int, int, int, int, int>(1, 2, 3, 4, 5, 6);
Console.WriteLine($"Item 1: {testTuple6.Item1}, Item 6: {testTuple6.Item6}");var testTuple8 = Tuple.Create<int, int, int, int, int,&n