C#编程(三十六)----------元组

时间:2023-11-09 22:48:08

元组

数组合并了相同类型的对象,而元组合并了不同类型的对象.

.NET 4定义了8个泛型Tuple类和一个静态的Tuple类,他们用作元组的工厂.

元组是一种数据结构,通过逗号分隔

Tuple<T1,T2,T3...>最多能到7,也可以通过嵌套的元组中的对象创建八个或多个元素的元组在Rest属性中的Tuple<T1, T2, T3, T4, T5, T6, T7, TRest> 对象。

案例:

//一个元素的元组

Tuple<int> test = new Tuple<int>(34);

//两个元素的元组

Tuple<string, int> test2 = new Tuple<string, int>("zhangsan",23);

//多个元素的元组

Tuple<int, int, Tuple<int, int>> test_i_i_Tii = new Tuple<int, int, Tuple<int, int>>(1, 1, new Tuple<int, int>(2, 3));

Console.WriteLine(test.Item1);

Console.WriteLine(" {0}  :  {1}",test2.Item1,test2.Item2);

Console.ReadKey();

多个返回值问题

一般shiyongout关键字,使用元组也可以实现,案例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 元组

{

class Program

{

static void Main(string[] args)

{

string outparam = "";

//使用out关键字得到多个返回值

int returnvalue = OutTest(out outparam);

Console.WriteLine(outparam);

//使用Tuple得到多个关键字

Tuple<string, int> test = TupleTest();

Console.WriteLine("{0},{1}", test.Item1, test.Item2); ;

Console.ReadKey();

}

/// <summary>

/// 实现返回两个值

/// </summary>

/// <param name="test"></param>

/// <returns></returns>

public static int OutTest(out string test)

{

test="hahaha";

return 10;

}

/// <summary>

/// 使用元组实现返回两个值

/// </summary>

/// <returns></returns>

public static Tuple<string, int> TupleTest()

{

return new Tuple<string, int>("zhangsan",10);

}

}

}

当然使用创建的帮助器方法的同一元组对象更为简单:

var test = Tuple.Create("zhangsan",19);            Console.WriteLine("{0},{1}",test.Item1,test.Item2);

元组通常有四种不同的使用方式:

1.表示一组数据.例如,元组可以表示一条数据库记录,并且其组建可以保湿记录的各个字段.

2.提供对数据集的轻松访问和操作

3.在不使用out参数(在C#中)或ByRef参数(在VB)的情况下,从方法汇总返回多个值

4.通过单个参数将多个值传递给一个方法.案例:

static void Main(string[] args)

{

Tuple<string,int,char> t=new Tuple<string,int,char>("zhangsan",19,'M')

int res = Test(t);

}

public static int Test(Tuple<string,int ,char> t)

{

return 0;

}