C#4.0中的元組物件Tuple
一、什麼是元組
元組就是一些物件的集合,在我們程式設計時,比如一個人的資訊,我們常常建立一個Person類去描述一個人,傳統的做法如下:
public class Person{
public int ID{get;set;}
public string Name{get;set;}
}
Person a=new Person(){ID=1001,Name='CodeL'};
Console.WriteLine(a.Name);
那麼我們使用元組可以怎麼做呢?如下所示
Tuple<int,string> a=new Tuple<int,string>(1001,'CodeL'); //直接使用元組物件,不需要建立自定義的物件
Console.WriteLine(a.Item2);//Item1 代表第一個,Item2代表第二個,每一個元組物件都有一個預設的item屬性
由此可見,元組最大的用處就是,不用為了 一些簡單的結構或物件而去新建一個類了。
注意的是tuple最多支援8個成員,如果成員超過了8個我們可以將第8個成員當成一個元組,通過元祖的巢狀去完成,如
列如:Tuple<string, int, int, int, int, int, int, Tuple<int, int, int>> 紅色部分是第8個。這裡的第八個成員又是一個元組。
二、元組的使用
1、元組物件的建立和遍歷
建立元組物件有兩種方法,如下:
//通過建構函式建立元組物件
Tuple<string, int, double> tuple1 = new Tuple<string, int, double>("數學", 100, 100.1);
//通過靜態函式建立元組物件
Tuple<string, int, double> tuple2 = Tuple.Create<string, int, double>("英語", 200, 200.2);
//元組物件的遍歷,元組物件有一個預設的item屬性
Console.WriteLine($"{tuple1.Item1} {tuple1.Item2} {tuple1.Item3}");
Console.WriteLine($"{tuple2.Item1} {tuple2.Item2} {tuple2.Item3}");
2、元組與資料集合的結合
按照之前建立自定義的資料型別的使用方法,我們一般是使用 List<Person> listPerson=new List<Person>(); 但是通過元組我們如下所示:
List<Tuple<string, string, int, int, int>> listPerson = new List<Tuple<string, string, int, int, int>>()
{
new Tuple<string, string, int, int, int>("菲菲","女",23,161,50),
new Tuple<string, string, int, int, int>("張三","男",25,171,66),
Tuple.Create<string,string,int,int,int>("李四","男",25,178,78)
};
foreach (var item in listPerson)
{
Console.WriteLine($"{item.Item1} {item.Item2} {item.Item3} {item.Item4} {item.Item5}");
}
3、拓展
在最新的C#7.0語法中,對元組有了新的處理方法,我會在後面的文章中去比較