📅  最后修改于: 2023-12-03 15:14:28.348000             🧑  作者: Mango
C# 元组是用于存储多个相关值的结构。它可以作为单个实体返回多个值,而不需要创建一个复杂的类或结构体。元组普遍用于将多个返回值组合在一起,或者在不需要创建一个新的命名类型时,仍需要 OOP 的某些功能。本文将介绍 C# 元组的使用和示例。
元组可以使用以下两个方法声明和初始化:
Tuple<int, string, char> tupleExample = new Tuple<int, string, char>(42, "Hello, world!", 'A');
var tupleExample = (42, "Hello, world!", 'A');
这两个方法都可以用于创建一个三个元素的元组,第一个元素是整数 42,第二个元素是字符串 "Hello, world!",第三个元素是字符 A。
元组的元素可以通过以下示例中所示的两种方式进行读取:
Console.WriteLine(tupleExample.Item1); // 42
Console.WriteLine(tupleExample.Item2); // "Hello, world!"
Console.WriteLine(tupleExample.Item3); // 'A'
或者使用解构:
var (intVal, strVal, charVal) = tupleExample;
Console.WriteLine(intVal); // 42
Console.WriteLine(strVal); // "Hello, world!"
Console.WriteLine(charVal); // 'A'
这两种方法效果相同,只是读取元素的语法不同。
元组可以根据其元素类型创建一个空的元组,然后根据需要添加元素。我们可以使用以下两种方法创建元组:
var tupleExample = Tuple.Create<int, string, char>(0, null, 'B');
tupleExample.Item1 = 42;
tupleExample.Item2 = "Hello, world!";
tupleExample.Item3 = 'A';
var tupleExample = (0, (string)null, 'B');
tupleExample.Item1 = 42;
tupleExample.Item2 = "Hello, world!";
tupleExample.Item3 = 'A';
这两种方法都创建了一个空的三个元素的元组。你可以按照元素的顺序分别设置每个元素。如果某个元素的类型为引用类型,则可以将其设置为 null
。
元组可以非常方便地用作方法的参数和返回值,例如:
public static (int, string) GetValueTuple(int input)
{
return (input + 1, "Success");
}
我们可以使用以下方法访问返回元组的每个元素:
var result = GetValueTuple(42);
Console.WriteLine(result.Item1); // 43
Console.WriteLine(result.Item2); // "Success"
或者我们使用语言支持的解构方法:
var (intVal, strVal) = GetValueTuple(42);
Console.WriteLine(intVal); // 43
Console.WriteLine(strVal); // "Success"
元组可以用元素名称声明和初始化。具有命名元素的元组称为 “命名元组”:
var namedTupleExample = (num: 42, message: "Hello, world!", letter: 'A');
在命名元组中,每个元素都有一个名称。使用以下代码读取命名元组中的元素:
Console.WriteLine(namedTupleExample.num); // 42
Console.WriteLine(namedTupleExample.message); // "Hello, world!"
Console.WriteLine(namedTupleExample.letter); // 'A'
还可以使用解构来读取元素:
var (num, message, letter) = namedTupleExample;
Console.WriteLine(num); // 42
Console.WriteLine(message); // "Hello, world!"
Console.WriteLine(letter); // 'A'
C# 元组可以作为存储多个相关值的结构。它们可以用于将多个返回值组合在一起,或者在不需要创建一个新的命名类型时,使用 OOP 的某些功能。元组也可以用作方法的参数和返回值。元组需要在运行时保持不可变性,以确保值的正确性。