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

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()}");
主站蜘蛛池模板: 会理县| 沾化县| 博湖县| 陕西省| 诸城市| 香港 | 辰溪县| 马龙县| 齐河县| 和硕县| 喀什市| 远安县| 墨玉县| 曲沃县| 盱眙县| 浠水县| 都匀市| 红河县| 本溪| 乐清市| 绥棱县| 温州市| 西城区| 岳普湖县| 包头市| 偃师市| 长寿区| 德保县| 蕲春县| 庆安县| 报价| 青海省| 乌恰县| 吴川市| 大余县| 基隆市| 鹿邑县| 长子县| 宜州市| 敦煌市| 科技|