官术网_书友最值得收藏!

Tuples

One of the big new features in C# 7 is support for tuples. Tuples are groups of values, and you can now return them directly from method calls. You are no longer restricted to returning a single value. Previously, you could work around this limitation in a few suboptimal ways, including creating a custom complex object to return, perhaps with a Plain Old C# Object (POCO) or Data Transfer Object (DTO), which are the same thing. You could have also passed in a reference using the ref or out keyword, which are still not great although there are improvements to the syntax.

There was System.Tuple in C# 6, but it wasn't ideal. It was a framework feature, rather than a language feature, and the items were only numbered and not named. With C# 7 tuples, you can name the objects and they make a great alternative to anonymous types, particularly in LINQ query expression lambda functions. As an example, if you only want to work on a subset of the data available, perhaps when filtering a database table with an O/RM, such as Entity Framework, then you could use a tuple for this.

The following example returns a tuple from a method. You may need to add the System.ValueTuple NuGet package for this to work:

private static (int one, string two, DateTime three) GetTuple()
{
return (one: 1, two: "too", three: DateTime.UtcNow);
}

You can also use tuples in string interpolation and all the values will be rendered, as shown here:

Console.WriteLine($"Tuple = {GetTuple()}");
主站蜘蛛池模板: 平远县| 虹口区| 社会| 普格县| 吉林省| 绥宁县| 余姚市| 清河县| 娄底市| 伊宁县| 湘潭市| 金川县| 栾城县| 平阴县| 武定县| 安西县| 三都| 泰兴市| 荆州市| 罗江县| 杂多县| 德惠市| 巴彦县| 宿州市| 罗源县| 晋江市| 合肥市| 石家庄市| 河北省| 苗栗市| 兴海县| 济阳县| 昆明市| 兴国县| 牙克石市| 陵水| 凤凰县| 化德县| 海原县| 桐乡市| 剑河县|