c# - 将字符串 [123,234,...] 转换为 List<int> 并返回的更好方法

标签 c# .net json.net

基本上,我正在尝试转换看起来像是存储在字符串类型中的整数值数组。

[123,234,345,456] // example

目前,我正在执行以下操作以将字符串转换为 List<int>int[]:

var intList = "[123,234,345,456]".Replace("[","").Replace("]","").Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).Tolist();

(sort, add, remove) 执行所需的操作 list 并将其 convert 返回到 string :

string.Format("[{0}]", string.Join(",", intList));

但这让我开始思考。我正在处理的数据看起来像 JSON 。肯定有更直接的方法将 converting string 转换为 array of integers 吗?

我查看了使用 JArray.Parse(string) 中的 Newtonsoft.Json.Linq 但这不只是增加了一层额外的复杂性,因为现在我正在处理 JArray<JToken> 而不是标准的 int[]

如果有人有不涉及添加 methodsextensionslibraries 的更简洁的解决方案,如果您能分享您的知识,我将不胜感激。

最佳答案

你是对的 - JSON 可以为你做到这一点:

using System;
using Newtonsoft.Json;

namespace Demo
{
    class Program
    {
        static void Main()
        {
            string test = "[123,234,345,456]";

            var result = JsonConvert.DeserializeObject<int[]>(test);

            // This prints "123, 234, 345, 456"

            Console.WriteLine(string.Join(", ", result));

            string andBackAgain = JsonConvert.SerializeObject(result);

            // This prints "[123,234,345,456]"

            Console.WriteLine(andBackAgain);
        }
    }
}

关于c# - 将字符串 [123,234,...] 转换为 List<int> 并返回的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54862339/

相关文章:

c# - Word文档文件的创建

c# - 带恢复功能的 BouncyCaSTLe RSA 概率签名方案

.net - Visual Studio 2005,如何获取解决方案中使用项目的位置?

c# - DAL和BO层Singleton的正确使用?

c# - 如何序列化两个参数Json转换?

c# - razor @helper 返回什么类型?

c# - 迭代平滑位置变化

c# - 如何将数据集转换为强类型对象?

c# - 迭代 json 输入并基于 "keys"考虑到子级 "keys"创建类似 TreeView 的层次结构

c# - 序列化我的对象时如何加密选定的属性?