当前位置: 首页 > news >正文

C# 元组

基本用法

(double, int) t1 = (4.5, 3);
double sum = t1.Item1;
int count = t1.Item2;

字段名称

可以在元组初始化表达式(上面的 (4.5, 3))或元组类型的定义(上面的 (double, int))中显示指定元组字段名称,例:

var t = (Sum: 4.5, Count: 3);
double sum1 = t.Sum;
int count1 = t.Count;(double Sum, int Count) d = (4.5, 3);
double sum2 = d.Sum;
int count2 = d.Count;

未显式指定名称时,可以根据元组初始化表达式中变量名称推断出元组字段名称,称为“元组投影初始值设定项”,例:

string str = "Hello";
var t = (str, str.Length); // 变量名、字段名或实例属性名等
Console.WriteLine($"The length of [{t.str}] is {t.Length}.");

说明:

  • 如果推断的名称是元组类型的成员名称,则不会被投影,例:

    // 编译异常:CS8126 Tuple element name 'ToString' is disallowed at any position.
    var t1 = (Num: 123, ToString: "123");// 允许正常编译,无法通过 t2.Item3 访问第一个元素
    var t2 = (MyClass.Item3, 1);
    class MyClass
    {public static string Item3 = "";
    }
    
  • 如果推断的名称重复,则不会被投影,例:

    string s1 = "foo";
    string s2 = "bar";
    // 允许正常编译,无法通过 t.Length 访问任何一个元素
    var t = (s1.Length, s2.Length);
    
  • 即使发生了投影,也允许使用元组字段默认名称,例:

    var t = (Sum: 4.5, Count: 3);
    double sum = t.Item1;
    int count = t.Item2;
    

赋值

支持两个元组直接赋值,前提条件:

  1. 两个元组元素数量相同
  2. 两个元组对应元素类型相同,或右侧到左侧支持隐式转换

元组赋值忽略元组的字段名称,也就是说,即使字段名称不同也允许赋值,被赋值后字段名称不会被修改

析构

允许使用赋值运算符 = 在单独的变量中析构元组实例,例:

var t = ("post office", 3.6);
// 声明隐式类型化变量
var (destination, distance) = t;var t = ("post office", 3.6);
// 显式声明每个变量的类型
(string destination, double distance) = t;var t = ("post office", 3.6);
// 显式声明一些类型,隐式声明其他类型
(var destination, double distance) = t;var destination = string.Empty;
var distance = 0.0;
var t = ("post office", 3.6);
// 使用现有变量
(destination, distance) = t;

比较

元组类型支持 ==!= 运算符,按顺序对两个元组中的元素依次比较,前提条件:

  1. 两个元组元素数量相同
  2. 两个元组对应元素可比较(使用 ==!= 运算符)

官方文档

https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-tuples

http://www.sczhlp.com/news/15778/

相关文章:

  • 车辆行驶里程查询
  • 日本平面设计网站什么是网络软文营销
  • 杭州设计公司logoseo研究中心vip课程
  • 哪个网站上做ppt比较好东营网站推广公司
  • 兼职网站建设 开源恩城seo的网站
  • 大连网站开发培训拉新app渠道
  • 高等数学 8.5 曲面及其方程
  • 杭州做肉松饼的网站有多少家企业网站设计规范
  • 北京城乡建设网站曼联官方发文
  • 武汉网站制作案例万网查询
  • 天堂 在线地址8seo诊断工具网站
  • 什么网站可以申请做汉语老师百度在线使用网页版
  • 有肌肉男与小姐姐做床上运动的网站免费有效的推广平台
  • 深圳微商城网站制作市场监督管理局
  • 青岛城市建设集团网站成人教育培训机构排名
  • 网站程序开发外包网络推广网站有哪些
  • 云建站app教育机构培训
  • 网站优化快照seo是什么意思?
  • 下载jsp网站开发用啥工具网站的开发流程
  • 网络推广和网络运营的区别如何网站关键词优化
  • 信息技术制作网站首页社群营销成功案例
  • 昆明网站开发的公司百度网络优化推广公司
  • 天津企业网站建站排名nba
  • 网站 语言选择 中文 英文 源码百度app广告
  • 垦利网站设计线上营销的方式
  • wordpress 获取当前域名网络seo是什么工作
  • 合肥网站制作公司排名百度公司的企业文化
  • 网络工程师自学网站百度指数免费查询
  • 网站建设公司有多少钱关联词有哪些三年级
  • 河北共产党员网站两学一做游戏代理300元一天