【发布时间】:2019-02-25 08:42:18
【问题描述】:
基本上,我正在尝试转换似乎是存储在字符串类型中的整数值数组。
[123,234,345,456] // example
目前,我正在执行以下操作以将字符串转换为 List<int> 或 int[]:
var intList = "[123,234,345,456]".Replace("[","").Replace("]","").Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).Tolist();
在list 和convert 上执行所需的操作(sort, add, remove) 将其返回到string:
string.Format("[{0}]", string.Join(",", intList));
但这让我开始思考。我正在使用的数据看起来像JSON。当然必须有更直接的方式将converting 将string 转换为array of integers?
我研究过使用Newtonsoft.Json.Linq 中的JArray.Parse(string),但这不只是增加了一层额外的复杂性,因为我现在处理的是JArray<JToken>,而不是标准的int[]。
如果有人有不涉及添加 methods、extensions 或 libraries 的更简洁的解决方案,如果您能分享您的知识,我将不胜感激。
【问题讨论】:
-
预期输出是多少?
-
你也可以使用正则表达式,
-
如果您的输入真的那么简单,您可以使用正则表达式,但如果您的输入输出格式发生变化,这很快就会变得非常麻烦 - 例如如果你有双打而不是整数。
-
JsonDataContractSerializer可以这样做:docs.microsoft.com/en-us/dotnet/api/…