如何使用这种“组合”数据类型:(int, int)[]

Syl*_*rag 3 .net c#

我正在 codewars.com 上做套路,其中一个涉及一系列间隔:

(int, int)[] intervals
Run Code Online (Sandbox Code Playgroud)

我认为这等效于 KeyValuePair 数组,但是如何访问任一整数?

Pav*_*ski 6

这是一种Tuple数据类型。在您的示例中,您可以使用Item1和Item2属性访问元组项(因为它是一个未命名的 tuple),如下所示:

(int, int)[] intervals = new (int, int)[3];
var interval = intervals[0];
var item1 = interval.Item1;
var item2 = interval.Item2;
Run Code Online (Sandbox Code Playgroud)

它在 C# 7 之前可用。

在 C# 7 及更高版本中,您还可以声明命名元组数组 (int x, int y)[] intervals并使用命名属性访问项目,x并且y.