c#元组举例
元组的概要:
数组合并了相同类型的对象,而元组合并了不同类型的对象。元组起源于函数编程语言(如F#) ,在
这些语言中频繁使用元组。在N盯4中,元组可通过.NET Fmmework用于所有的NET语言。
.NET 4定义了8个泛型Tuple类和一个静态Tuple类,它们用作元组的工厂。这里的不同泛型Tuple
类支持不同数量的元素。例如,Tuple<T1>包含-个元素,Tuple<T1,T2>包含两个元素,以此类推。 .第一个例子
private Tuple<int, int> Divide(int dividend, int divisor)
{
int result = dividend / divisor;
int reminder = dividend % divisor;
return Tuple.Create<int, int>(result, reminder); //返回两个相同类型元素的元组
}
--------测试-------------
private void button1_Click(object sender, EventArgs e)
{
Tuple<int, int> result = Divide(, );
Console.WriteLine("result of divison:{0}," +
"reminder:{1}", result.Item1, result.Item2); //用属性item1,item2访问元组的项
}
-------结果-------------
result of divison:,reminder:
.第二个例子
private Tuple<int, string> MyTest2(int dividend, string Name)
{
int result = dividend / ;
string name = "Hello," + Name;
return Tuple.Create<int, string>(result, name); //返回两个不同类型元素的元组
}
--------测试-------------
private void button2_Click(object sender, EventArgs e)
{
Tuple<int, string> result = MyTest2(, "limin");
Console.WriteLine("result of divison:{0}," +
"Name:{1}", result.Item1, result.Item2); //用属性item1,item2访问元组的项
}
-------结果-------------
result of divison:,Name:Hello,limin
.第三个例子
如果元组包含的项超过8个,就可以使用带8个参数的Tuple类定义。最后一个模板参数是TRest ,
表示必须给它传递一个元组。这样,就可以创建带任意个参数的元组了。
下面说明这个功能:
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
其中,最后一个模板参数是一个元组类型,所以可以创建带任意多项的元组:
var tuple = Tuple.Create<string,string,string, int,int,int,double,
Tuple<int,int>>(
"stephanie","Alina","Nagel", ,,,1.37,
Tuple.Create<int,int> (,)); Tuple为何物? 什么是Tuple,在汉语上我们将其翻译为元组。Tuple的概念源于数学概念,表示有序的数据集合。在.NET中Tuple被实现为泛型类型,n-Tuple表示有n个元素的Tuple,集合的元素可以是任何类型,例如定义一个3-Tuple表示Date(Year, Month, Day)时可以定义为:
// Release : code01, 2009/05/29
// Author : Anytao, http://www.anytao.com
var date = Tuple.Create<int, int, int>(, , ); 优势所在:
为方法实现多个返回值体验,这是显然的,Tuple元素都可以作为返回值。
灵活的构建数据结构,符合随要随到的公仆精神。
强类型。
不足总结:
当前Tuple类型的成员被实现为确定值,目前而言,还没有动态决议成员数量的机制,如果你有可以告诉我:-)
public class Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>,可能引发ArgumentException。
c#元组举例的更多相关文章
- Python之路【第七篇续】:I/O多路复用
回顾原生Socket 一.Socket起源: socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用[打开][读写][关闭]模式来操作. socket就是该模式的 ...
- python 全栈开发,Day71(模型层-单表操作)
昨日内容回顾 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} {% ...
- 01: Python基本数据类型
目录: 1.1 列表和元组 1.2 字符串 1.3 字典 1.4 集合 1.1 列表和元组返回顶部 1.列表基本操作 1. 列表赋值 a = [1,2,3,4,5,6,7,8] a[0] = 100 ...
- Django基础(3)----模型层-单表操作,多表创建
昨日内容回顾: 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} { ...
- python基本数据类型的操作
1 列表和元组 1.列表基本操作 1. 列表赋值 a = [1,2,3,4,5,6,7,8] a[0] = 100 #the result : [100, 2, 3, 4, 5, 6, 7, 8] 2 ...
- python笔记之列表与元组函数和方法使用举例
在学习列表之前先了解了raw_input和input的区别:(仅适用于版本2,版本3中raw_input和input合并,没有raw_input) input的语法为:input("str& ...
- python学习笔记(列表、元组、购物车实例)
一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...
- 第二天----列表、元组、字符串、算数运算、字典、while
列表 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 基本操作: 索引切片追加删除长度切片循环包含 创建.查看列表: 列表中的数字不要加引号,列表的索引从0开始: lis ...
- python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列
1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 Counter 我们从中挑选一些相对常用的方法来举例: 在上面的例子 ...
随机推荐
- 洛谷 P4093 [HEOI2016/TJOI2016]序列 解题报告
P4093 [HEOI2016/TJOI2016]序列 题目描述 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某些项的值可能会变化,但同一个时刻最多只有一 ...
- 初识python版本
区别一: python2x:源码重复不规范. python3x:重新整理规范了源码. 区别二: python2x: 默认的编码方式ascii,显示中文需要首行添加:# _*_ encoding: u ...
- C++之智能指针20170920
/*************************************************************************************************** ...
- 二次封装bootstrap-table及功能优化
/** * 设置bootstrat-table * @param params */ function setBootstrapTable (target, params) { // 默认设置表格内容 ...
- Hdu2433 Travel
Travel Time Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- fastjson的@JSONField注解的一点问题
@JSONField 看源码它可以作用于字段和方法上. 引用网上说的, 一.作用Field @JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称. 但是 ...
- RabbitMQ的原理和使用
转载:RabbitMQ从入门到精通 转载:轻松搞定RabbitMQ 转载:RabbitMQ Java入门教程 一.RabbitMQ AMQP,即Advanced Message Queuing Pro ...
- 【POJ】3233 Matrix Power Series
[算法]二分+矩阵快速幂 [题意]给定矩阵A和整数k,MOD,求A^0+A^1+A^2+...+A^k. [题解] 定义题目要求的答案为f(n),即: $$f_n=\sum_{i=0}^{n}A^i$ ...
- Spring Session加Redis
session是一个非常常见的概念.session的作用是为了辅助http协议,因为http是本身是一个无状态协议.为了记录用户的状态,session机制就应运而生了.同时session也是一个非常老 ...
- 47、Python面向对象中的继承有什么特点?
继承的优点: 1.建造系统中的类,避免重复操作. 2.新类经常是基于已经存在的类,这样就可以提升代码的复用程度. 继承的特点: 1.在继承中基类的构造(__init__()方法)不会被自动调用,它需要 ...