C#中元组对象Tuple的使用

简介

元组使用泛型来简化类的定义,多用于方法的返回值。在函数需要返回多个类型的时候,就不必使用out , ref等关键字了,直接定义一个Tuple类型,使用起来非常方便

例子

在我们编程时,比如一个人的信息,我们常常创建一个UserInformation类去描述一个人,传统的做法如下:.

 public class UserInformation
    { 
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
          static UserInformation GetUserInformation()
        {
            return new UserInformation { FirstName = "张三", LastName = "李四" };
        }

那么我们使用元组可以怎么做呢?如下所示

      static Tuple<string, string> GetUserInformation3()
        {
            return new Tuple<string,string> ( "张三", "李四" );
        }
           var tuple = GetUserInformation1();
          string firstName=  tuple.Item1;
            string lastName = tuple.Item2;

Item1代表第一个属性值,Item2代表第二个属性值,当然如果使用Item1和item2可读性比较差,不看方法根本不知道Item1代表什么意思,这时候我们就可以使用匿名类型了,如下所示:

      var ( first, last) = GetUserInformation1();

first是我们的第一个属性值,last是我们的第二个属性值。在C#7.0中它提供了更简洁的语法,用于将多个数据元素分组成一个轻型数据结构

     static (string, string) GetUserInformation1()
        {
            return  ("张三", "李四");
        }

当然也是支持匿名类型获取属性值的

   var(first,last)= GetUserInformation1();

学习更多元组类型请前往:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-tuples