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

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()}");
主站蜘蛛池模板: 贵德县| 仪征市| 荃湾区| 望都县| 思南县| 辉南县| 凤冈县| 东乡族自治县| 天祝| 十堰市| 历史| 巴林左旗| 晋宁县| 三亚市| 汉源县| 无极县| 长丰县| 临汾市| 沁阳市| 平远县| 宜州市| 大埔县| 晋宁县| 临澧县| 石渠县| 武宣县| 商丘市| 甘洛县| 新田县| 南部县| 许昌县| 二连浩特市| 无极县| 静乐县| 河北区| 安国市| 柞水县| 汉寿县| 长春市| 中宁县| 德庆县|