数组合并了同样类型的对象。而元祖合并了不同类型的对象。元祖起源于函数编程语言(F#)
NET Framework定义了8个泛型Tuple(自NET4.0)和一个静态的Tuple类,他们作用元祖的工厂,
这里的不同泛型Tuple类支持不同数量的元素。比如:Tuple<T1>包括一个元素,Tuple<T1,T2>包括2个元素,依次类推
/* 创建者:菜刀居士的博客
* 创建日期:2014年07月14号
*/
namespace Net.String.ConsoleApplication
{
using System;
/// <summary>
/// 元祖Tuple
/// </summary>
public class TupleDemo
{
/// <summary>
/// 方法Devide返回包括2个成员的元祖Tuple<int,int>.泛型类的參数定义了成员的类型,他们都是整数
/// 元祖用静态Tuple类的静态方法Create方法创建,Create方法的泛型參数定义了要实例化的元祖类型
/// 新建的元祖用resultA和resultB变量实例化
/// </summary>
public static Tuple<int,int> Devide(int a, int b)
{
int resultA = a / b;
int resultB = a % b;
return Tuple.Create(resultA, resultB);
}
/// <summary>
/// 调用Devide方法,能够用属性Item1和Item2訪问元祖的项
/// </summary>
public static void Test()
{
var result = Devide(10, 2);
Console.WriteLine("resultA: {0},resultB: {1}", result.Item1,result.Item2);
}
//假设元祖包括的项超过8个,就能够使用8个參数的Tuple类定义,最后一个模版參数的TRest,表示必须给他传递一个元祖
//这样。就能够创建随意參数的元祖
//public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> Create<T1, T2, T3, T4, T5, T6,
//T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
}
}