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

iim*_*nov 2 .net c# json.net

基本上,我试图转换看似存储在字符串类型中的整数值数组.

[123,234,345,456] // example
Run Code Online (Sandbox Code Playgroud)

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

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

在列表上执行所需的操作(排序,添加,删除)并将其转换回字符串:

string.Format("[{0}]", string.Join(",", intList));
Run Code Online (Sandbox Code Playgroud)

但后来这让我思考.我正在使用的数据看起来像JSON.当然,必须有一种更直接的方法将字符串转换为整数数组?

我看着使用List<int>,int[]:但不仅仅是添加额外的复杂层,因为我正在处理(sort, add, remove)而不是标准list.

如果有人有一个更简洁的解决方案,不涉及添加方法,扩展或库,我将不胜感激,如果你可以分享你的知识.

Mat*_*son 19

你是对的 - 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)