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

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()}");
主站蜘蛛池模板: 特克斯县| 黄梅县| 平和县| 英超| 肥西县| 宝山区| 宁海县| 沁阳市| 福州市| 沁源县| 彰化县| 基隆市| 拉萨市| 腾冲县| 万州区| 南木林县| 互助| 武鸣县| 抚宁县| 汉中市| 防城港市| 常德市| 平山县| 郑州市| 枞阳县| 卢湾区| 民县| 岱山县| 香港 | 绥阳县| 禹城市| 澳门| 涞水县| 张家港市| 梓潼县| 秦皇岛市| 江城| 石家庄市| 岢岚县| 海安县| 龙泉市|