C#4.0新特性之元组Tuple

原创 2016年08月31日 16:39:28
组元使用泛型来简化一个类的定义。

 

public class Point
    {
        public int X { get; set; }
        public int Y { get; set; }
    }


            //the user customer data type.
             Point p = new Point() { X = 10, Y = 20 };
            //use the predefine generic tuple type.
             Tuple<int, int> p2 = new Tuple<int, int>(10, 20);
            
            //
             Console.WriteLine(p.X + p.Y);
            Console.WriteLine(p2.Item1 + p2.Item2);

一个简单的包含两个Int类型成员的类,传统的方法定义point需要写很多代码,但是使用tuple却只有一句,组元多用于方法的返回值。如果一个函数返回多个类型,这样就不在用out , ref等输出参数了,可以直接定义一个tuple类型就可以了。非常方便。

//1 member
             Tuple<int> test = new Tuple<int>(1);
            //2 member ( 1< n <8 )
             Tuple<int, int> test2 = Tuple.Create<int, int>(1,2);
            //8 member , the last member must be tuple type.
             Tuple<int, int, int, int, int, int, int, Tuple<int>> test3 = new Tuple<int, int, int, int, int, int, int, Tuple<int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int>(8));

            //
             Console.WriteLine(test.Item1);
            Console.WriteLine(test2.Item1 + test2.Item2);
            Console.WriteLine(test3.Item1 + test3.Item2 + test3.Item3 + test3.Item4 + test3.Item5 + test3.Item6 + test3.Item7 + test3.Rest.Item1);

第一个定义包含一个成员。

第二个定义包含两个成员,并且使用create方法初始化。

第三个定义展示了tuple最多支持8个成员,如果多于8个就需要进行嵌套。注意第8个成员很特殊,如果有8个成员,第8个必须嵌套定义tuple。如果上面所示。

//2 member ,the second type is the nest type tuple.
             Tuple<int, Tuple<int>> test4 = new Tuple<int, Tuple<int>>(1, new Tuple<int>(2));
            //10 member datatype. nest the 8 parameter type.
             Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> test5 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int, int, int>(8, 9, 10));
 

            //
             Console.WriteLine(test4.Item1 + test4.Item2.Item1);
            Console.WriteLine(test5.Item1 + test5.Item2 + test5.Item3 + test5.Item4 + test5.Item5 + test5.Item6 + test5.Item7 + test5.Rest.Item1 + test5.Rest.Item2 + test5.Rest.Item3);


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

C#的元组Tuple类型

using System; using System.Collections; using System.Collections.Generic; namespace Csharp { c...
  • jkhere
  • jkhere
  • 2013年06月06日 18:54
  • 1012

C# 组元Tuple

组元是C# 4.0引入的一个新特性.需要基于.NET Framework 4.0或者更高版本。组元使用泛型来简化一个类的定义。组元多用于 方法的返回值,如果一个函数返回多个类型,这样就不在用out\r...
  • aoshilang2249
  • aoshilang2249
  • 2014年10月13日 21:33
  • 3067

C#中Tuple的使用

鉴于MSDN上面的机器翻译实在太烂,还是自己翻译吧,虽然麻烦了点(-_-)。 定义:元组是具有 特定数量和序列 的元素 的数据结构  (注意断句哈!) 元组通常有四种使用方式︰ 一、表示一组数...
  • finish_dream
  • finish_dream
  • 2016年08月18日 10:26
  • 7097

C#4.0中的元组对象Tuple

一、什么是元组 元组就是一些对象的集合,在我们编程时,比如一个人的信息,我们常常创建一个Person类去描述一个人,传统的做法如下: public class Person{   publi...
  • qq_27825451
  • qq_27825451
  • 2017年04月23日 17:43
  • 557

23 查询数据

24  查询数据 本主题提供有关在Greenplum的数据库使用SQL的信息。 你进入所谓的查询中使用PSQI交互式SQL客户端和其他客户端工具的数据库查看,更改和分析数据的SQL语句。 •     ...
  • kygoal
  • kygoal
  • 2017年07月25日 23:25
  • 216

python(一)列表与元组——列表

1:list函数 功能:根据字符串(也可以是所有类型的序列)创建列表。 >>> list('zhaoliying') ['z', 'h', 'a', 'o', 'l', 'i', 'y', 'i'...
  • sinat_35188997
  • sinat_35188997
  • 2017年06月28日 18:09
  • 100

Visual Studio2017中编写ASP.NET程序时使用C# 7.0元组Tuple新特性的一点注意事项

C# 7.0的元组Tuple类型引入了一个更优美的使用特性,此时需要安装第三方包System.ValueTuple。在Visual Studio Community 2017中编写控制台或窗体程序时正...
  • hulihui
  • hulihui
  • 2017年07月09日 21:45
  • 744

python中元组(tuple)用法总结

一、tuple也是一个class,是不可变的list类型,不可以增删改。 创建: tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, ...
  • yezonggang
  • yezonggang
  • 2016年03月25日 08:33
  • 18068

Python入门教程--元组

语法
  • jichuang123
  • jichuang123
  • 2015年06月25日 23:34
  • 231

第三章 F# 和 C# 中元组、列表和函数

第三章 F# 和 C# 中元组、列表和函数   本章介绍 ■声明函数和值 ■使用不可变元组和列表 ■用递归处理列表 ■函数化处理函数   在第二章,我们从宏观上探讨了函数编程中最重要的...
  • hadstj
  • hadstj
  • 2014年09月05日 16:11
  • 515
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#4.0新特性之元组Tuple
举报原因:
原因补充:

(最多只允许输入30个字)