C#中元组对象Tuple的使用

简介

元组使用泛型来简化类的定义,多用于方法的返回值。在函数需要返回多个类型的时候,就不必使用out , ref等关键字了,直接定义一个Tuple类型,使用起来非常方便

例子

在我们编程时,比如一个人的信息,我们常常创建一个UserInformation类去描述一个人,传统的做法如下:

public class UserInformation{ public string FirstName { get; set; }public string LastName { get; set; }}static UserInformation GetUserInformation(){return new UserInformation { FirstName = "张三", LastName = "李四" };}

那么我们使用元组可以怎么做呢?如下所示

static Tuple<string, string> GetUserInformation3(){return new Tuple<string,string> ( "张三", "李四" );}var tuple = GetUserInformation1();string firstName=  tuple.Item1;string lastName = tuple.Item2;

Item1代表第一个属性值,Item2代表第二个属性值,当然如果使用Item1和item2可读性比较差,不看方法根本不知道Item1代表什么意思,这时候我们就可以使用匿名类型了,如下所示:

var ( first, last) = GetUserInformation1();

first是我们的第一个属性值,last是我们的第二个属性值。在C#7.0中它提供了更简洁的语法,用于将多个数据元素分组成一个轻型数据结构

static (string, string) GetUserInformation1(){return  ("张三", "李四");}

当然也是支持匿名类型获取属性值的

var(first,last)= GetUserInformation1();

学习更多元组类型请前往:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-tuples

最后大家如果喜欢我的文章,还麻烦给个关注并点个赞, 希望net生态圈越来越好!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之通过strings命令查看so里面是否包含****字符串

1 问题 比如我们在一个C文件里面或者C++文件里面添加了日志打印字符串***,但是实际上没打印,我们会怀疑这个打印字符串有没有加到so里面去,那我们有什么办法呢?用strings命令 strings ***.so | grep 关键字 strings命令是在对象文件或者二进制文件中查找可打印的字符串 …

HQ-day2 C#语言基础

今天主要学习了C#的一些语言基础。 主要有&#xff1a;输入、输出。 一丶输入Console.readline(); 输入语句 输出console.write(); 输出语句 Console.writeline(); 输出语句自动换行 注释 CtrlK 然后 按C &#xff0c;注释选中部分 CtrlK 然后 按U&#xff0c; 取消注释 二、…

删除 oracle

C:\app\Administrator\product\11.2.0\client_1\deinstall 用这个批处理文件,会把oracle全部删除,除这个目录本身以外 .另外它不删除服务,即使服务已经被停止(不停止也无法卸载). 采用 sc delete 服务名,删除服务.

程序员应该选择哪种语言来学习更好?应该如何学

还记得自己那年考清华失败&#xff0c;被调剂到中科大软院&#xff0c;当初有几个方向可以选&#xff0c;软件设计、嵌入式、信息安全等等&#xff0c;毫不犹豫地选择了信息安全。为什么选信息安全&#xff1f;这四个字听起来多牛多有感觉&#xff0c;我本科是学物理的&#xf…

C#文件写入操作

using System; using System.IO;namespace IO操作 {class Program{static void Main(string[] args){using(StreamWriter wFile.AppendText("IO.txt")){TextIn("Hello GeoStorm", w);TextIn("Hello World",w);w.Close();}}public static void Te…

【C语言简单说】十三:变量的生命周期

这次我们就来说说生命周期的问题。其实声明周期的意思就是他这个变量的作用范围&#xff0c;啥是作用范围&#xff1f;唔。。。看我举例子吧&#xff0c;意会&#xff0c;意会。。。 首先&#xff0c;我想问一下你们&#xff0c;如果你们校长叫做小明&#xff0c;你们班也有一…

指数分布java_python-numpy-指数分布实例详解

如下所示&#xff1a;# Seed random number generatornp.random.seed(42)# Compute mean no-hitter time: tautau np.mean(nohitter_times)# Draw out of an exponential distribution with parameter tau: inter_nohitter_timeinter_nohitter_time np.random.exponential(ta…

ASP.NET 6 中间件系列 - 条件中间件

这篇文章是 ASP.NET 6 中间件系列文章的第 4 部分。到目前为止&#xff0c;我们已经介绍了 ASP.NET 6 中间件的基础知识&#xff0c;展示了如何创建自定义中间件类&#xff0c;并讨论了中间件执行顺序的重要性。在本系列的最后一部分中&#xff0c;我们将展示在管道中有条件地执…

服务器之Apache和Tomcat和Nginx的理解和对比

1 问题 公司服务器用的Apache,后台是php语言&#xff0c;然后服务端用的linux C/C,会经常听到Apache服务器&#xff0c;然后之前实习的公司服务端用的java,然后依稀记得使用了nginx反向代理服务器和tomcat&#xff0c;请求先经过nginx然后再去通过tomcat转发请求&#xff0c;然…

python数据结构教程_利用Python演示数型数据结构的教程

使用 Python 内建的defaultdict方法可以轻松定义一个树的数据结构。简单的说树也可以是一个字典数据结构def tree(): return defaultdict(tree)这就是全部&#xff0c;就一行代码。如果你继续下面的代码&#xff0c;需要先引入from collections import defaultdict实例JSON-esq…

[Programming WCF Services]Chapter 1. WCF Essentials - Metadata Exchange

1.HTTP-GET WCF 方式 通过Http的方式提供metadata 1.1.配置文件方式 <system.serviceModel><services><service name "MyService" behaviorConfiguration "MEXGET"><host><baseAddresses><add baseAddress "http…

【C语言简单说】十四:for循环

说到了循环&#xff0c;我们的内容也就差不多了&#xff0c;此内容并不深入讲解太多东西&#xff0c;大家学习完&#xff0c;如果要深入的话可以查看相关书籍&#xff0c;详细大家学习完后可能会觉得看书上说的可能就看懂了。 可能会有人说为什么不说进制&#xff1f;或者说位…

C#读文件操作

using System; using System.IO;namespace IO操作 {class Program{private const string FILE_NAME"IO.txt";static void Main(string[] args){if (!File.Exists(FILE_NAME)){Console.WriteLine("{0}does not exists!",FILE_NAME);Console.ReadLine();retu…

使用RxJava从多个数据源获取数据

试想&#xff0c;需要一些动态数据的时候&#xff0c;只要每次都请求网络就可以了。但是&#xff0c;更有效率的做法是&#xff0c;把联网得到的数据&#xff0c;缓存到磁盘或内存。 具体的说&#xff0c;计划如下&#xff1a; 偶尔的联网操作&#xff0c;只为获取最新数据。 …

centos 零碎学习小记 2.

1.具体实验&#xff08;让网卡ethX 里设置的DNS&#xff0c;不影响DNS配置文件 /etc/resolv.conf&#xff09;1.装完系统的人都想把机器连接外网&#xff0c;都会先看看自己网卡。那么我们用神马呢?简单实用 #ifconfig -a 看看自己网卡信息2.网卡看了开始设置您的网络吧&#…

AspNetCore配置多环境log4net配置文件

前言在之前的文章中有讲到AspNetCore多环境配置文件的应用&#xff0c;我们根据自己多种环境分别配置多个appsettings.$EnvironmentName.json文件。在实际的开发中我们可能会遇到不只一个配置文件&#xff0c;如当我们使用log4net日志库时&#xff0c;喜欢使用单独的log4net.co…

java阻塞队列作用_简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用...

简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用Condition&#xff1a;可以理解成一把锁的一个钥匙&#xff0c;它既可以解锁(通知放行)&#xff0c;又可以加锁(阻塞)notFull&#xff1a;当队列元素满了时&#xff0c;阻塞生产&#xff0c;当队列元素…

剑指offer之找出数组中重复数字

1 问题 给的N个数字的数组&#xff0c;每个元素的大小范围大于等于0小于N(0 << a[i] < N),找出数组中有哪些数字重复了并且这个数字重复了多少次&#xff0c;一共有几个数字重复了。 2思路 由于元素的大小范围大于等于0小于N(0 << a[i] < N),我们直接把这个…

tcp udp区别优缺点_一文搞懂TCP与UDP的区别

一、TCP协议&#xff1a;位于传输层&#xff0c; 提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service) 是指&#xff0c; 为了方便传输&#xff0c; 将大块数据分割成以报文段(segment) 为单位的数据包进行管理。而可靠的传输服务是指&#xff0c; 能够把数据准确可靠…

C#趣味程序---水仙花数

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 水仙花数 {public partial class Fo…