推荐使用ValueTuple而非Tuple,因其是值类型、性能更优、支持命名字段和解构;声明简洁如("张三",28,true),可命名如(Name:"王五",Age:25),支持var(name,age)=t解构,.NET Core 2.0+原生支持。

在C#中,Tuple(引用类型,.NET Framework 4.0引入)和ValueTuple(值类型,C# 7.0+推荐使用)都用于快速封装多个不同类型的值,但它们在性能、语法和用法上有明显区别。现在基本只推荐用 ValueTuple,它更轻量、支持解构、可命名字段,且无需额外 NuGet 包(.NET Core 2.0+ / .NET 5+ 内置)。
ValueTuple 基本声明与创建
可以直接用括号语法创建,比 Tuple.Create() 简洁得多:
-
var person = ("张三", 28, true);→ 编译器推断为(string, int, bool) - 显式指定类型:
ValueTuple<string int bool> t = ("李四", 31, false);</string> - 给字段起名(增强可读性):
var user = (Name: "王五", Age: 25, IsActive: true);,之后可用user.Name访问
解构(Deconstruction)让取值更直观
不用再写 t.Item1、t.Item2,直接拆成变量:
-
var (name, age, active) = ("赵六", 29, true);→ 自动按顺序赋值 - 也可部分解构:
var (name, _, _) = user;(下划线忽略不需要的字段) - 方法返回元组时特别方便:
var (code, msg) = GetResult();
ValueTuple 作为返回值或参数传递
适合替代 out 参数或小型 DTO:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~