在 C# 中,元组(Tuple)是一种轻量级的数据结构,用于存储一组有序的元素。元组可以包含从两个到八个元素,每个元素的类型可以不同。元组通常用于临时存储一组数据,而不需要定义一个具名的类或结构体。
创建和使用元组
1. 创建元组
在 C# 7.0 及更高版本中,可以使用多种方式创建元组
// 创建一个包含两个元素的元组
var tuple1 = (42, "hello");
// 显式指定元素类型的元组
Tuple<int, string> tuple2 = Tuple.Create(42, "world");
// 具名元组(C# 7.0 引入)
var namedTuple = (count: 42, message: "hello");
2. 访问元组元素
可以通过索引或名称访问元组中的元素:
Console.WriteLine(tuple1.Item1); // 输出 42
Console.WriteLine(tuple1.Item2); // 输出 "hello"
Console.WriteLine(namedTuple.count); // 输出 42
Console.WriteLine(namedTuple.message); // 输出 "hello"
3. 返回元组作为方法的结果
方法可以返回元组作为结果:
public (int sum, int count) CalculateSumAndCount(int[] numbers)
{
int sum = 0;
foreach (var number in numbers)
{
sum += number;
}
return (sum, numbers.Length);
}
4. 解构元组
可以使用解构来分解元组的值:
var (totalSum, totalCount) = CalculateSumAndCount(new int[] { 1, 2, 3, 4, 5 });
Console.WriteLine($"Total Sum: {totalSum}, Total Count: {totalCount}");
注意
- 元组是不可变的:元组的值在创建后不能修改。
- 元组中元素的名称和顺序:在访问元组元素时,建议使用具名元组或者使用索引来确保代码的清晰性和稳定性。
- 类型推断:使用
var
可以方便地创建元组,编译器会根据初始化的值推断出元组的类型。
元组提供了一种简单和方便的方式来组织和传递多个相关值,特别是在需要快速封装一组数据但不想引入新的类型定义时非常有用。