Tan*_*agi 1 c# arrays string list data-conversion
我有一个像单个字符串一样的列表 -"['2','4','5','1']"当计算每个字符时,它的长度为 17。
现在我想将它解析为列表对象,例如 -['2','4','5','1']其长度为 4 作为列表中的元素数。
我怎样才能在 C# 中做到这一点?
可以不做基本的字符串操作吗?如果是,那么如何?
不基于字符串操作
您的字符串值看起来像有效的 JSON 数组。
using Newtonsoft.Json;
var list = JsonConvert.DeserializeObject<List<char>>("['2','4','5','1']");
// => ['2','4','5','1']
Run Code Online (Sandbox Code Playgroud)
如果您需要输出为整数,请将输出类型设置为整数列表,JSON 序列化程序会将其转换为整数。
var list = JsonConvert.DeserializeObject<List<int>>("['2','4','5','1']");
// => [2, 4, 5, 1]
Run Code Online (Sandbox Code Playgroud)
转换为整数也将处理负值;)
var list = JsonConvert.DeserializeObject<List<int>>("['-2','4','-5','1']");
// => [-2, 4, -5, 1]
Run Code Online (Sandbox Code Playgroud)
您可以尝试正则表达式和Linq来将Match所有整数转换ToList()为 ( ) List<int>:
using System.Linq;
using System.Text.RegularExpressions;
...
string str = "['2','4','5','1']";
var result = Regex
.Matches(str, @"\-?[0-9]+") // \-? for negative numbers
.Cast<Match>()
.Select(match => int.Parse(match.Value)) // int.Parse if you want int, not string
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
806 次 |
| 最近记录: |