C#编程(三十六)----------元组
元组
数组合并了相同类型的对象,而元组合并了不同类型的对象.
.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#编程(三十六)----------元组的更多相关文章
- 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
- Java进阶(三十六)深入理解Java的接口和抽象类
Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...
- 剑指Offer(三十六):两个链表的第一个公共结点
剑指Offer(三十六):两个链表的第一个公共结点 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.ne ...
- NeHe OpenGL教程 第三十六课:从渲染到纹理
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Gradle 1.12用户指南翻译——第三十六章. Sonar Runner 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础
第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础 在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块 ...
- “全栈2019”Java第三十六章:类
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 微信小程序把玩(三十六)Storage API
原文:微信小程序把玩(三十六)Storage API 其实这个存储在新建Demo的时候就已经用到了就是存储就是那个logs日志,数据存储主要分为同步和异步 异步存储方法: 存数据 wx.setStor ...
- 风炫安全web安全学习第三十六节课-15种上传漏洞讲解(一)
风炫安全web安全学习第三十六节课 15种上传漏洞讲解(一) 文件上传漏洞 0x01 漏洞描述和原理 文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把 ...
随机推荐
- centos7 部署 docker swarm
=============================================== 2019/4/9_第3次修改 ccb_warlock 更新说 ...
- js 替换任意字符串中间几位为*星号
<script> var str='河南纳智企业管理咨询有限公司'; a=str.substr(0,2)+'***'+str.substr(5,str.split('').length); ...
- Java学习--编译器javac
Java的源程序为.java文件, 编译后生成.class文件(字节码文件); javac(java compiler的简写)是java语言的编译器. Hello.java public class ...
- 测试开发之Django——No2.Django的安装以及项目创建
开发平台:Mac Python版本:3.7 Django版本:2.0.5 一.Django的安装 1.pip安装 输入命令pip install Django==2.0.5 说明:不指定版本,则安装的 ...
- TcxGrid Sqlite text类型 显示memo
- java 组合接口时的名字冲突
重载方法仅通过返回类型是区分不开的,在打算组合的不同接口中,尽量使用不同的方法名,否则可能导致混乱 //: interfaces/InterfaceCollision.java package obj ...
- JAVA学习(二) String使用equals方法和==分别比较的是什么?(转)
String使用的equals方法和==的区别 equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指 ...
- IDEA中Ctrl+Shift+F快捷键无效的解决方式
某天突然发现idea非常重要的快捷键ctrl+shift+F无效了,网上搜了很多都说是qq快捷键冲突,但是找了下qq快捷键却没有解决,现在给大家一个解决快捷键冲突的思路: 1.查看QQ快捷键--> ...
- SpringMVC高级参数绑定(数组和List)
本节内容: 参数绑定之数组 将表单的数据绑定到List 复制下上篇博客中的工程,作为今天开发的工程. 一.参数绑定之数组 1. 需求 在商品列表页面选中多个商品,然后删除. 2. 需求分析 功能要求商 ...
- linux系统下创建lvm挂载到指定目录
1 .背景 在企业中有时我们为方便安装软件.数据的管理,需要把安装软件.数据放到固定目录下,磁盘满了方便扩展,这里假如需要一个/data目录存放数据,并单独进行挂载. 2.操作步骤 2.1 划分磁盘 ...