• Tuples in .Net 4 (System.Tuple)


     

    .Net 4 brings with it the Tuple type! I have never worked with tuples in programming before and have a hard time seeing their purpose but here is an example of a tuple in C#:

    什么是Tuple,在汉语上我们将其翻译为元组。Tuple的概念源于数学概念,表示有序的数据集合。在.NET中Tuple被实现为泛型类型,n-Tuple表示有n个元素的Tuple,集合的元素可以是任何类型

    var tupleOne = new Tuple<int, string>(1, "Hello World");
    Console.WriteLine("Tuple contains: " + tupleOne.Item1 + " and " + tupleOne.Item2);

    There are also some factory methods for creating tuples:

    var tupleTwo = Tuple.Create("Hello World", 2010);
    var tupleThree = Tuple.Create("Hello World", 2010, new SomeClass());
    Console.WriteLine("Tuple contains: " + tupleThree.Item1 + ", " + tupleThree.Item2 + " and " + tupleThree.Item3.MyProperty);

    Tuple facts:

    • Tuples are immutable
    • Tuples are reference types
    • Located in System.Tuple
    • Can take up to 8 generic parameters, but can contain an infinite number of elements.
    • Elements are always named Item1, Item2… Item7, Rest

    See msdn for more information.

    为什么要用Tuple呢?这是个值得权衡的问题,上述MyRequest类型中通过3-Tuple对需要的Request信息进行封装,我们当然也可创建一个新的struct来封装,两种方式均可胜任。然则,在实际的编程实践中,很多时候我们需要一种灵活的创建一定数据结构的类型,很多时候新的数据结构充当着“临时”角色,通过大动干戈新类型完全没有必要,而Tuple既是为此种体验而设计的。例如:

    • Point {X, Y},可以表示坐标位置的数据结构。
    • Date {Year, Month, Day},可以表示日期结构;Time {Hour, Minute, Second},可以表示时间结构;而DateTime {Date, Time}则可以实现灵活的日期时间结构。
    • Request {Name, URL, Result},可以表示Request的若干信息。
    • 。。。,随需而取。

    http://technet.microsoft.com/zh-cn/library/dd387150(v=VS.95)

  • 相关阅读:
    让你少奋斗10年的工作经验
    POJ Exponentiation解题
    数据结构树和二叉树
    语句摘录
    ACM解题报告格式
    编程规范
    数据结构图
    Java学习之二Java反射机制
    使用Python正则表达式提取搜索结果中的站点
    toj 1702 A Knight's Journey
  • 原文地址:https://www.cnblogs.com/fengye87626/p/3011662.html
Copyright © 2020-2023  润新知