美文网首页
C#元组的使用

C#元组的使用

作者: 一个很普通的名字 | 来源:发表于2022-09-18 14:33 被阅读0次

<p>元组(Tuple)是在C# 4.0时出的新特性,需要.Net Framework 4.0以上版本支持。</p><p>
</p><p>元组是一种数据结构,具有特定数量和元素序列。</p><p>
</p><p>#### 创建一个元组</p><p>
</p><p>c#</p><p>var testTuple = new Tuple&lt;string, string, string&gt;(&quot;这&quot;, &quot;是一个&quot;, &quot;元组&quot;);</p><p>Console.WriteLine(test.Item1 + test.Item2 + test.Item3);</p><p></p><p>
</p><p>#### 使用场景</p><p>
</p><p>从方法返回多个值</p><p>
</p><p>c#</p><p>/// &lt;summary&gt;</p><p>/// 获取坐标</p><p>/// &lt;/summary&gt;</p><p>/// &lt;returns&gt;&lt;/returns&gt;</p><p>static Tuple&lt;double, double&gt; GetCoordin(){</p><p>&nbsp; &nbsp; &nbsp;return new Tuple&lt;double, double&gt;(113.372901,34.779973);</p><p>}</p><p>var coordin=GetCoordin();</p><p>Console.WriteLine($&quot;经度:{coordin.Item1},纬度:{coordin.Item2}&quot;)</p><p></p><p>
</p><p>#### 每一次都声明一个元组太麻烦了?</p><p>
</p><p>来试试值元组(ValueTuple),ValueTuple是C# 7.0的新特性,使用时需要.Net Framework 4.7以上版本支持或者4.0以上安装System.ValueType包</p><p>
</p><p>值元组也是一种数据结构,用于表示特定数量和元素序列,但是是和元组类不一样的,主要区别如下:</p><p>
</p><p>- 值元组是结构,是值类型,不是类,而元组(Tuple)是类,引用类型;</p><p>- 值元组元素是可变的,不是只读的,也就是说可以改变值元组中的元素值;</p><p>- 值元组的数据成员是字段不是属性。</p><p>
</p><p>要注意的是:ValueTuple是结构类型,微软建议超过64字节不要使用结构,对ValueTuple 同样有效。</p><p>
</p><p>#### 创建一个值元组</p><p>
</p><p>值元组可以像元组一样利用构造函数创建</p><p>
</p><p>c#</p><p>/// &lt;summary&gt;</p><p>/// 获取坐标</p><p>/// &lt;/summary&gt;</p><p>/// &lt;returns&gt;&lt;/returns&gt;</p><p>static ValueTuple&lt;double, double&gt; GetCoordinByValueTuple()</p><p>{</p><p>&nbsp; &nbsp; &nbsp;return new ValueTuple&lt;double, double&gt;(113.372901, 34.779973);</p><p>}</p><p>var coordin=GetCoordin();</p><p>Console.WriteLine($&quot;经度:{coordin.Item1},纬度:{coordin.Item2}&quot;)</p><p></p><p>
</p><p>也可以用Tuple静态方法构建元组,最多支持八个元素</p><p>
</p><p>c#</p><p>/// &lt;summary&gt;</p><p>/// 获取坐标</p><p>/// &lt;/summary&gt;</p><p>/// &lt;returns&gt;&lt;/returns&gt;</p><p>static ValueTuple&lt;double, double&gt; GetCoordinByStatic()</p><p>{</p><p>&nbsp; &nbsp; &nbsp;return ValueTuple.Create(113.372901, 34.779973);</p><p>}</p><p>var coordin=GetCoordin();</p><p>Console.WriteLine($&quot;经度:{coordin.Item1},纬度:{coordin.Item2}&quot;)</p><p></p><p>
</p><p>还是麻烦?真是拿你们没办法哟,把ValueTuple扔掉,直接用小括号</p><p>
</p><p>c#</p><p>static (double,double) GetCoordinByParenthesis()</p><p>{</p><p>&nbsp; &nbsp; &nbsp;return (113.372901, 34.779973);</p><p>}</p><p>var coordin=GetCoordin();</p><p>Console.WriteLine($&quot;经度:{coordin.Item1},纬度:{coordin.Item2}&quot;)</p><p></p><p>
</p><p>返回值可以指定元素名字,方便理解记忆赋值和访问,:exclamation: 所有的元素名字都只是设计和编译时用的,不是运行时用的(因此注意对该类型的序列化和反序列化操作);</p><p>
</p><p>c#</p><p>static (double Lon, double Lat) GetCoordinByName()</p><p>{</p><p>&nbsp; &nbsp; &nbsp;return (113.372901, 34.779973);</p><p>}</p><p>var coordin=GetCoordin();</p><p>Console.WriteLine($&quot;经度:{coordin.Lon},纬度:{coordin.Lon}&quot;)</p><p></p><p>
</p><p>在使用时也可以构造局部变量,同时可以用_来忽略不需要的元素</p><p>
</p><p>c#</p><p>static (double Lon, double Lat) GetCoordinByName()</p><p>{</p><p>&nbsp; &nbsp; &nbsp;return (113.372901, 34.779973);</p><p>}</p><p>var (_,lon)=GetCoordin();</p><p>Console.WriteLine($&quot;纬度:{lon}&quot;)</p><p></p><p>
</p><p>告辞:smirk:</p><p>
</p>

相关文章

  • C#元组的使用

    元组(Tuple)是在C# 4.0时出的新特性,需要.Net Framework 4.0以上版本支持。 元组...

  • C#—元组

    元组 概念: 1.使方法 可以返回多个返回值 而不需要借助 out ref 关键字。 2.使方法 可以返回多个返回...

  • kotlin中缀函数 to

    二元元组 三元元组 to函数的使用 元组的概念? 元组的使用场景

  • python 元组

    元组 元组通常用来存储不同的元素。 a、创建元组 元组的创建使用小括号()创建,元组中的元素使用逗号隔离。 创建一...

  • 集合、元组

    元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简...

  • Python元组操作及方法总结

    一、元组概念 Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创...

  • Python基础_05:元组(2019-1-14)

    元组 python中元组和列表类似不同之处在于元组中的元素不可修改元组使用(),列表使用[]return a,b,...

  • python 基础 - 元组

    Python 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号...

  • 元祖

    Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。...

  • 7元组、序列[python基础]

    元组(Tuple)的读写操作 元组就是不可变的列表*元组使用小括号,列表使用中括号 元组的读取方式和列表相同 创建...

网友评论

      本文标题:C#元组的使用

      本文链接:https://www.haomeiwen.com/subject/tcsportx.html