的使用方法本文转载请联系码农阅读公众号。元组是一种数据结构,由有序的、有限的、固定大小的和不可变的异构元素序列组成。当我们说Tuple中的元素是不可变的时,这意味着元素不能被修改。ValueTuple是C#7引入的,主要用来解决Tuple的两个问题。解决语义问题,之前只能通过Item1,Item2,...访问元素。解决性能问题,因为ValueTuple是轻量级的值类型本文将讨论什么是ValueTuple以及如何使用它。ValueTuple和TupleValueTuple是支持强命名的轻量值类型,而Tuple是引用类型。一般来说,ValueTuple比Tuple有更高的性能。Tuple中的属性是只读的,也就是说,一旦创建就不能更改,而ValueTuple的属性创建后是可以修改的。安装System.ValueTuple使用VisualStudio创建控制台应用程序后,接下来可以安装NuGet包。您可以使用VisualStudio2019IDE进行可视化安装,或者在.NETCLI窗口中使用以下命令。dotnetaddpackageSystem.ValueTuple请注意,ValueTuple现在作为.NETFramework4.7的一个子集存在。创建ValueTuple创建ValueTuple的方法有几种,大致如下:使用构造函数使用Create方法使用()下面的代码片段展示了如何使用构造函数创建ValueTuple。ValueTuplevalueTuple=newValueTuple(1,"Joydip","Kanjilal");下面看看如何通过Create方法创建一个ValueTuple,如下代码所示:varvalueTuple=ValueTuple.Create(1,"Joydip","Kanjilal");也可以为成员名赋值对应的值,创建一个ValueTuple,如下代码所示:varauthor=(Id:1,FirstName:"Joydip",LastName:"Kanjilal");除了上述方法外,还可以在左侧放置成员名+对应的值,实现ValueTuple的创建和初始化,代码如下:(intId,stringFirstName,stringLastName)author=(1,"Joydip","坎吉拉尔");ValueTuple的命名属性ValueTuple支持更多的语义命名属性,用于替换默认的Item1、Item2、Item3……下面的代码展示了如何给ValueTuple的属性命名。(intId,stringFirstName,stringLastName)author=(1,"Joydip","Kanjilal");从方法中返回ValueTuple与Tuple一样,您也可以使用ValueTuple从方法中返回多个值。下面的代码片段展示了如何从Method返回ValueTuple。static(int,string,string)GetAuthor(){return(Id:1,FirstName:"Joydip",LastName:"Kanjilal");}使用解构函数从ValueTuple中提取成员你可以使用解构函数提取多个来自ValueTuple成员的值,下面的代码片段展示了如何去做。(intId,stringFirstName,stringLastName)=GetAuthor();修改ValueTuple中的值之前文章也提到过,Tuple创建后,其成员不能修改,但ValueTuple可以。下面的代码显示了两者之间的区别。从上图的错误信息栏可以看出,Tuple中的Item是只读的,不支持修改。最后要提的是:你可以使用扩展方法来实现System.Tuple和System.ValueTuple之间的转换。以下代码显示了如何将ValueTuple转换为Tuple。varvalueTuple=ValueTuple.Create(1,"Joydip","Kanjilal");vartuple=valueTuple.ToTuple();ValueTuple比Tuple具有更简单的语法和更高的性能,此外,可以修改它们的数据成员,还可以给它们一些有意义的名称。简而言之,您应该使用ValueTuple而不是Tuple的原因太多了。翻译链接:https://www.infoworld.com/article/3528752/how-to-use-valuetuples-in-csharp.html