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

原创 2015年07月06日 19:30:32

元组

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

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

}

 

相关文章推荐

查找文件,解压缩,合并成一个大文件——一个shell脚本

需求: 有一堆文件乱七八糟的,但是给定一个类似后缀的小字符串,根据这个字符串,查找出所有文件,将这些文件改名(因为是压缩文件,但是后缀不是GZ),解压缩,然后合并成一个大文件。 ...

C#高级编程二十七天----创建泛型类

创建泛型类 首先介绍一个一般的,非泛型的简化链表类,可以包含任意类型的对象,以后再把这个类转化为泛型类. 在立案表中,一个元素引用下一个元素.所以必须创建一个类,他将对象封装在链表中,并引用下一个...

Swift学习笔记(四)——高级数据类型之元组详解

元组作为一种高级数据类型是很多其他语言中所没有的,Java,C,C++中都没有元组的概念,在Python中有元组的概念。所以相对来说比较特殊,我们要好好学习一下。        Tuples (元组)...

Swift 元组高级用法和最佳实践

作为 Swift 中比较少见的语法特性,元组只是占据了结构体和数组之间很小的一个位置。此外,它在 Objective-C(或者很多其他语言)中没有相应的结构。最后,标准库以及 Apple 示例代码中对...
  • mmoaay
  • mmoaay
  • 2015年10月12日 11:33
  • 1451

C#高级编程五十七天----位数组

位数组 如果需要处理很多位,就可以使用BitArray类和BitVector32.BitArray位于命名空间System.Collections中. BitVector32位于命名空间Syste...

6.2.2 在 C# 中处理元组的方法

6.2.2 在 C# 中处理元组的方法       在本节中,我们将处理来自第 3 章的泛型 Tuple 类,添加类似于我们刚才在 F# 中看到的功能。清单 6.6 显示了高阶函数 mapFirs...
  • hadstj
  • hadstj
  • 2011年05月10日 10:37
  • 966

Halcon C#.net 编程指导(3): 元组(Tuples)的使用

1. 使用单个值或元组调用函数 你可以从参考手册(refrence manual)里查看算子是否可以处理元组(tuples)。例如下面列出了AreaCenter和GenRectang...

Python 核心编程笔记_Chapter_6_Note_1 序列_字符串_列表_元组

基本概念都差不多了,不过看到一些内容之前没记录过,还是记录下。 顺序排序是从0开始到N-1结束 倒序排列是从N-1结束,到-1结束 很容易忽视的一个倒序基础知识 切片索引的更...

python核心编程笔记(5)- 列表,元组

chap 6.11-6.21 1.列表:     创建(直接创建,工厂方法-list()),索引值访问,按索引更新或者追加(append())更新,del()删除具体索引或者整个列表,re...

C#元组 Pair Triplet Tuple

C#默认提供了Pair、Triplet 、Tuple(4.0新增加的)这三个元组,在一些小的数据结构使用时,我们可以不用去声明相应的数据结构,而用这些元组来替代。 public sealed c...
  • dz45693
  • dz45693
  • 2012年07月03日 14:31
  • 3062
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#高级编程三十六天----元组
举报原因:
原因补充:

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