首页 > 代码库 > C#元祖Tuple的事例
C#元祖Tuple的事例
数组合并了相同类型的对象,而元祖合并了不同类型的对象,元祖起源于函数编程语言(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);
}
}