基本上,我正在尝试转换看起来像是存储在字符串类型中的整数值数组。
[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[]
。
如果有人有不涉及添加 methods
、 extensions
或 libraries
的更简洁的解决方案,如果您能分享您的知识,我将不胜感激。
最佳答案
你是对的 - 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/