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;

}

 

C++ Primer Plus第六版 第十三章 编程练习答案

今天下午体测 GGGGGGGGGGGG //第一题 //main.cpp #include "cd.h" void Bravo(const Cd &disk); int main() { C...
  • zhaoshu01234
  • zhaoshu01234
  • 2015年11月21日 11:55
  • 1527

C#高级编程六十三天----并行LINQ

并行LINQ .NET4在System.Linq命名空间中包含一个新类ParallelEnumerable,可以分解查询的工作使其分布在多个线程上.尽管Enumerable类给IEnumerable...
  • shanyongxu
  • shanyongxu
  • 2015年08月02日 20:50
  • 1473

C++ Primer Plus第六版 第十一章 编程练习答案

//第一题 //windows下\r\n在txt中是换行...被坑了= = //vector.h #ifndef VECTOR_H_ #define VECTOR_H_ #include name...
  • zhaoshu01234
  • zhaoshu01234
  • 2015年09月26日 10:54
  • 1744

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

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

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

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

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

位数组 如果需要处理很多位,就可以使用BitArray类和BitVector32.BitArray位于命名空间System.Collections中. BitVector32位于命名空间Syste...
  • shanyongxu
  • shanyongxu
  • 2015年07月27日 15:13
  • 959

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

第三章 F# 和 C# 中元组、列表和函数   本章介绍 ■声明函数和值 ■使用不可变元组和列表 ■用递归处理列表 ■函数化处理函数   在第二章,我们从宏观上探讨了函数编程中最重要的...
  • hadstj
  • hadstj
  • 2014年09月05日 16:11
  • 504

3.2.2.1 更好地推断 C# 元组类型

3.2.2.1 更好地推断 C# 元组类型   在继续之前,我们想展示了一个 C# 的技巧,它能使后面使用元组的示例更简明。在前面的示例中,我们必须调用构造函数,创建元组类型的实例,这就要求显式指...
  • hadstj
  • hadstj
  • 2014年09月16日 22:27
  • 545

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

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

6.2.2 C# 中处理元组的方法

6.2.2 C# 中处理元组的方法   在本节,我们将继续处理第三章的泛型 Tuple 类,添加类似于刚才在 F# 中看到的功能。清单 6.6 就是高阶函数 mapFirst 和 mapSecond ...
  • hadstj
  • hadstj
  • 2014年10月30日 14:36
  • 626
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#高级编程三十六天----元组
举报原因:
原因补充:

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