String value =“ 71.08099899999999,24.10229 // 71.08099899999999,24.102665 /// 71.080874,24.10279 // 71.080749,24.102915 ”;
到嵌套数组列表
List<List<List<decimal>>> Arr = [
[
[
[71.08099899999999][24.10229]
][
[71.08099899999999][24.102665]
]
][
[
[71.080874][24.10279]
][
[71.080749][24.102915]
]
]
];
我现在尝试过的事情:
List<List<string>> val1 = new List<List<string>>();
List<List<List<string>>> val2 = new List<List<List<string>>>();
string[] val = value .Split(new string[] { " /// " }, StringSplitOptions.None);
for (int i = 0; i < val.Length - 1; i++)
{
val1.Add(val[i].Split(new string[] { " // " }, StringSplitOptions.None).ToList());
}
for (int i = 0; i < val1.Count; i++)
{
for (int j = 0; j < val1[i].Count-1; i++) { }
}
答案 0 :(得分:2)
使用.Split
和linq .Select
:
var result = value.Split(new[] { "///" }, StringSplitOptions.None).Select(lvl1 =>
lvl1.Split(new[] { "//" }, StringSplitOptions.None).Select(lvl2 =>
lvl2.Split(',').Select(val =>
decimal.Parse(val.Trim())).ToList()).ToList()).ToList();
请注意,如果其中一个值不是有效小数,则会失败。确保您可以预测decimal?
并使用decimal.TryParse
然后Select
仅使用非空商品
作为旁注..拥有如此多的嵌套集合似乎是一种设计气味。考虑考虑不同的设计