如何在 C# 中创建 5 元组或五元组?

如何在 C# 中创建 5 元组或五元组?

在 C# 中,元组是一种表示多个值的数据结构。通过使用元组,可以将多个不同类型的值组合成一个单一的值。C# 7.0 引入了 元组类型,它允许您创建多个元素的编组。

默认情况下,C# 支持最多 8 个元素的元组。如果要使用元组创建一个超过 8 个元素的序列,则必须定义自定义类型或将其转换为其他类型。

要创建五元组,您可以使用以下代码:

Tuple<int, string, bool, double, DateTime> fiveTuple = new Tuple<int, string, bool, double, DateTime>(1, "Hello", true, 3.14, DateTime.Now);

在上面的代码中,我们使用 Tuple 类型创建了一个名为 fiveTuple 的五元组,其中包含一个整数、一个字符串、一个布尔值、一个双精度浮点数和一个日期时间值。

创建自定义元组类型

如果您希望创建自定义元组类型而不是使用 Tuple 类型,则可以使用自定义类型来定义您的元组。以下是一个示例:

public struct FiveTuple<T1, T2, T3, T4, T5>

{

public T1 Item1 { get; }

public T2 Item2 { get; }

public T3 Item3 { get; }

public T4 Item4 { get; }

public T5 Item5 { get; }

public FiveTuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)

{

Item1 = item1;

Item2 = item2;

Item3 = item3;

Item4 = item4;

Item5 = item5;

}

}

在以上代码中,我们定义了一个名为 FiveTuple 的自定义类型,其中包含五个字段。我们还为该类型定义了一个构造函数,用于在创建新的五元组时初始化这些字段。

下面的代码演示了如何使用定义的 FiveTuple 类型创建五元组:

FiveTuple<int, string, bool, double, DateTime> fiveTuple = new FiveTuple<int, string, bool, double, DateTime>(1, "Hello", true, 3.14, DateTime.Now);

在上面的代码中,我们使用 FiveTuple 类型创建了一个名为 fiveTuple 的五元组,其中包含一个整数、一个字符串、一个布尔值、一个双精度浮点数和一个日期时间值。

访问元组中的值

在 C# 中访问元组中的值与访问其他类型中的值类似。以下是一个示例:

Tuple<int, string, bool, double, DateTime> fiveTuple = Tuple.Create(1, "Hello", true, 3.14, DateTime.Now);

int item1 = fiveTuple.Item1;

string item2 = fiveTuple.Item2;

bool item3 = fiveTuple.Item3;

double item4 = fiveTuple.Item4;

DateTime item5 = fiveTuple.Item5;

在上面的代码中,我们使用 .Item1、.Item2、.Item3、.Item4 和 .Item5 属性访问元组中的值。

以下是使用自定义类型的示例:

FiveTuple<int, string, bool, double, DateTime> fiveTuple = new FiveTuple<int, string, bool, double, DateTime>(1, "Hello", true, 3.14, DateTime.Now);

int item1 = fiveTuple.Item1;

string item2 = fiveTuple.Item2;

bool item3 = fiveTuple.Item3;

double item4 = fiveTuple.Item4;

DateTime item5 = fiveTuple.Item5;

在上面的代码中,我们使用 FiveTuple<> 类型的字段访问元组中的值。

推荐

在 C# 中,元组是一种非常有用的数据结构,可以方便地将多个值组合成一个单一的值。在许多情况下,元组是 C# 代码的最佳数据结构之一,因为它们简化了代码并使其更易于理解。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签