C# ValueTuple 值元组的用法

本文介绍了C#7.0引入的ValueTuple,作为轻量级值类型数据结构,其特点包括结构类型、可变性、简洁语法和易于解构。并通过示例展示了如何创建、访问和将ValueTuple转换为Json格式。
摘要由CSDN通过智能技术生成

C#中的 Value Tuple 是一种轻量级的数据结构,用于在单个变量中存储多个值。从C# 7.0开始引入,Value Tuple 是一种提高代码清晰度和简化数据表示的方式。它们在 System.ValueTuple 命名空间下,并且被设计为可变的(mutable),允许你在创建后修改元素的值。

与传统的 System.Tuple 类相比,Value Tuples 有几个关键区别:

1.结构类型(Value Type):Value Tuples 是值类型(struct),而不是引用类型(class)。这意味着它们在栈上分配,可以提高性能,并减少垃圾回收的压力。

2.可变性:Value Tuples 的字段可以修改,而 System.Tuple 中的元素是只读的。

3.语法简洁:Value Tuples 支持直接的元素命名,使得代码更容易理解。

4.解构:Value Tuples 可以很容易地被解构到独立的变量中,这使得处理多返回值变得简单。

例如,创建和使用 Value Tuple 的简单代码如下:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建一个Value Tuple
            var person = (Name: "John", Age: 30);

            // 访问Value Tuple的元素
            Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");

            // 解构Value Tuple到单独的变量
            var (name, age) = person;
            Console.WriteLine($"Name: {name}, Age: {age}");

            // 可以修改Value Tuple的元素
            person.Age = 31;

            Console.ReadKey();
        }
    }
}

运行:

接下来测试 Value Tuple 是否可以转换为 Json 

给项目安装 Newtonsoft.Json 

代码:

using Newtonsoft.Json;
using System;

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var person = (Name: "John", Age: 30);
            string json = JsonConvert.SerializeObject(person);
            Console.WriteLine(json);

            Console.ReadKey();
        }
    }
}

转换成 Json 后的字段名却变成了这样

end

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值