C#—元组

作者: 你这样我很吃惊 | 来源:发表于2019-03-19 21:59 被阅读0次

元组 概念:

1.使方法 可以返回多个返回值 而不需要借助 out ref 关键字。

2.使方法 可以返回多个返回值 而不需要借助 out ref 关键字,Tuple这个泛型类,可以允许我们返回多个参数。

1.基于 .Net4.0 框架的元组-Tuple:

创建一个元组 Tuple:

 1.  Tuple<string> test3 = new Tuple<string>("2");

2.  Tuple<string> test4 = Tuple.Create<string>("3");

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

示例1:

public static Tuple<string, string, string> GetFullName() => new Tuple<string, string, string>("first", "second", "third");

public static void OldTuple()

        var fullName = GetFullName();

        Console.WriteLine(fullName.Item1);

        Console.WriteLine(fullName.Item2);

        Console.WriteLine(fullName.Item3);

如此为一个元组 Tuple,由 fullName 接收来自GetFullName()函数所返回的值,而这个返回值为Tuple<string, string, string>类型(泛型)

上方代码 将获得到的打印数据为 “first”、“second”、“third”。

优点:此等 Tuple 可以不借助于 ref 和 out 参数从而返回出多个 多类型的数据,这些数据被保存在一个元组中方便调用

缺点:由 Tuple 返回出的数据显示方式单一 为上方所示的 以 Item1 2 3 作为Tuple中的数据下标(只能这种方式取用)

示例2:

public static Tuple<int,string,int> ReturnOldTuple()

         int id = 6;

         string name = "王";

         int num = 50;

         return Tuple.Create(id, name, num); //创建返回对象 Tuple

public static void OldTuple()

        Tuple<int,string,int> tuple = ReturnOldTuple();

         Console.WriteLine(tuple.Item1);

         Console.WriteLine(tuple.Item2);

         Console.WriteLine(tuple.Item3);

如此示例 打印获得参数为6、王、50, 可返回多个不同类型的数据。

接收方式与上例不同,此次创建了一个新的 Tuple 类型对象用来接受 ReturnOldTuple() 函数中所返回的数据。 两种方式 都可 任选其一。

2.C#新特性ValueTuple 新元组

创建一个ValueTuple:

1. ValueTuple<int> test = new ValueTuple<int>();

2.  ValueTuple<int,string> test2 = ValueTuple.Create(2,"5");

3.在函数中可快速创建并返回 return(int ,string,double); 如 示例 2 中所示

示例1:

static (string First, string Second, string Third) GetFullNum() => ("first", "second", "third");

public static void NewValueTuple()

        var fullnum = GetFullNum();

         Console.WriteLine(fullnum.First);

         Console.WriteLine(fullnum.Second);

         Console.WriteLine(fullnum.Third);

如此 打印获得结果为:first、second、third。 可以看到在编写中已经去除了 Item 1 2 3 从而改为返回值中的元素名称。

示例2:

public static (int id, string name, int num) ReturnNewValueTupleTwo()

         int id = 6;

        string name = "王";

         int num = 50;

        return (id, name, num);

        //return ValueTuple<int, string, int>(id, name, num); 方法二

        //return ValueTuple.Create(id, name, num); 方法三

public static void NewValueTuple()

         (int id, string name, int num) valueTupleTwo = ReturnNewValueTupleTwo(); //应该使用这种方法声明的变量接受

        //var valueTupleTwo = ReturnNewValueTupleTwo(); 方法二

        Console.WriteLine(valueTupleTwo.id);

        Console.WriteLine(valueTupleTwo.name);

         Console.WriteLine(valueTupleTwo.num);

如上 为第二种返回ValueTaple的方法,将获得返回值:6、王、50. 也可通过 .名称 的方式获得值。

上方案例种 通过三种方法返回ValueTuple 用两种方法接受ValueTuple值。

相关文章

  • C#元组的使用

    元组(Tuple)是在C# 4.0时出的新特性,需要.Net Framework 4.0以上版本支持。 元组...

  • C#—元组

    元组 概念: 1.使方法 可以返回多个返回值 而不需要借助 out ref 关键字。 2.使方法 可以返回多个返回...

  • Python入门:元组

    六、元组 6.1 定义元组 元组和列表相似,列表是[---],元组是(---) 6.2 访问元组 6.3 修改元组...

  • Python 元组

    元组的创建和删除 访问元组元素 修改元组元素 元组推导式 元组与列表的区别

  • python入坑第七天|元组

    废话不多说,今天来学习元组。内容如下: 元组的创建 索引、切片 元组的连接 元组的不可修改性 元组内置函数 元组的...

  • Python元组

    python元组元组和列表的区别在于元组中的元素不能修改 创建元组创建元组用() tuple = ()当元组里只包...

  • Python_4_内置结构-元组-字符串

    1. 元组概念1.1. 元组的特点1.2. 元组的定义1.3. 元组的访问1.4. 元组的查询 2. 命名元组 3...

  • Swift 元组 (Tuple)

    定义元组 获取元组内容 修改元组 元组分解 元组作为函数返回值 通常可以用元组来为函数返回多个返回值。

  • 13、Python集合(set)

    上集回顾: 元组(tuple)定义 元组注意事项 元组妙用 上集学习了元组相关知识,元组和列表类似,但是不能修改。...

  • 3.元组Tuple

    目录0.元组介绍1.元组定义和初始化2.元组元素访问3.命名元组namedtuple 0.元组介绍 元组是不可变对...

网友评论

    本文标题:C#—元组

    本文链接:https://www.haomeiwen.com/subject/qlbnmqtx.html