C#高级编程3十六天-元组

C#高级编程三十六天----元组

元组

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

.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;

}

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

1楼u010850027前天 21:39
对于程序员来说,代码就是生命!