Skip to content

元组

元组(Tuple)是一种用于 存储多个不同类型的值的数据结构

元组允许在一个单一的对象中组合多个值,而不需要为每个值创建一个单独的类或结构体。

特点

  1. 不可变性:元组的内容一旦创建就不能被修改。如果需要修改元组的值,只能创建一个新的元组对象。

  2. 异构性:元组可以包含不同类型的值,例如整数、字符串、布尔值等。**

  3. 命名元组:C#7.0 引入了命名元组的概念,允许为元组的每个元素指定名称,以增加代码的可读性。

普通元组

C#
// 创建一个元组
var person = Tuple.Create("John", 25, true);
Console.WriteLine(person.Item1); // "John"
Console.WriteLine(person.Item2); // 25
Console.WriteLine(person.Item3); // true

命名元组

C#
var person = (Name: "Alice", Age: 30, IsAdult: true);
Console.WriteLine(person.Name);
Console.WriteLine(person.Age);
Console.WriteLine(person.IsAdult);

// 或者使用变量构析
var (Name, Age, IsAdult) = ("Alice", 30, true);
Console.WriteLine(Name);
Console.WriteLine(Age);
Console.WriteLine(IsAdult);

元组作为函数返回值

C#
public static (string, int) GetPersonInfo()
{
    return ("Bob", 28);
}

var (name, age) = GetPersonInfo();
Console.WriteLine($"Name: { name }, Age: { age }");

元组比较

注意

两个元组比较时,元素数目必须相同,否则编译报错。

C#
var t1 = (A: 5, B: 10);
var t2 = (B: 5, A: 10);
Console.WriteLine(t1 == t2); // True
C#
(int a, byte b) left = (5, 10);
(long a, int b) right = (5, 10);
Console.WriteLine(left == right); // True

Released under the MIT License.