C#之元组

介绍:

元组是 C# 中的一个数据结构,用于将多个元素组合成一个单一对象,而无需定义自定义类或结构。C# 提供了两种主要的元组实现:

  • System.Tuple (传统元组)
    .NET Framework 4.0 开始引入,是不可变的(创建后不能修改)。
// 创建元组
Tuple<int, string, bool> tuple1 = Tuple.Create(1, "Apple", true);
 
// 访问元素
int id = tuple1.Item1;
string name = tuple1.Item2;
bool isActive = tuple1.Item3;
 
// 嵌套元组
Tuple<int, string, Tuple<double, double>> nestedTuple = 
    Tuple.Create(1, "Point", Tuple.Create(3.14, 2.71));
  • ValueTuple (C# 7.0 引入的值类型元组)
    更现代的实现,支持值语义、命名元素和更灵活的使用方式。
// 创建值元组
(int id, string name, bool isActive) tuple2 = (1, "Apple", true);
 
// 命名元素
var person = (Id: 1, Name: "John", Age: 30);
Console.WriteLine(person.Name); // 输出 "John"
 
// 解构
var (id, name, age) = person;
Console.WriteLine(id); // 输出 1
 
// 作为方法返回值
public (int sum, int product) Calculate(int a, int b)
{
    return (a + b, a * b);
}
 
var results = Calculate(3, 4);
Console.WriteLine($"Sum: {results.sum}, Product: {results.product}");

区别

特性 System.Tuple ValueTuple
类型 引用类型 值类型
可变性 不可变 可变
元素命名 不支持 支持
性能 较低(堆分配) 较高(通常栈分配)
相等性比较 引用相等 值相等
引入版本 .NET 4.0 C# 7.0 / .NET Core 1.0
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 元组(Tuple)是在C# 4.0时出的新特性,需要.Net Framework 4.0以上版本支持。 元组...
    一个很普通的名字阅读 3,359评论 0 0
  • Tuple类的使用   元组就是将一组松散的对象简单地组合在一起。   元组比数组灵活性略强,数组中元素类型是统一...
    若能遇见阅读 5,830评论 0 0
  • 元组 概念: 1.使方法 可以返回多个返回值 而不需要借助 out ref 关键字。 2.使方法 可以返回多个返回...
    你这样我很吃惊阅读 6,897评论 0 3
  • 记录自己在学习c#遇到的知识点(容易忽略容易忘记得,或一些小技巧)[持续更新] 前言: 在大部分应用情况下,"效率...
    wwmin_阅读 4,887评论 0 51
  • object 变量可指向任何类的实例,这让你能够创建可对任何数据类型进程处理的类。然而,这种方法存在几个严重的问题...
    CarlDonitz阅读 4,479评论 0 5

友情链接更多精彩内容