从解析的字符串中构建多级数组/锯齿数组
本文关键字:数组 多级 构建 字符串 | 更新日期: 2023-09-27 17:54:07
我一直在尝试扩展我的代码,以结合基于一些字符串的第三级数组,这就是我一直在尝试做的,但我只能使它与我对代码的理解第二级数组。
string a = "{50,8,10} Grade 1; {70,10,45} Grade 2; {80,20,65} Grade 3: {90,100,23} Grade 4; {98,99,32} Grade 5; {100,1000,7} Grade 6";
int[][][] test =
a.Split(':')
.Select(t => Regex.Matches(t, @"(?<={).*?(?=})"))
.Cast<MatchCollection>()
.Select(m => m.Cast<Match>()
.Select(n => n.ToString().Split(',')
.Select(int.Parse))
.ToArray())
.ToArray()
.ToArray();
那么数组的每一部分看起来就像这样
//int[][][] { {50,8,10} Grade 1; {70,10,45} Grade 2; {80,20,65} Grade 3 }
// int[][] { {50,8,10},{70,10,45},{80,20,65} }
// int[] {50,8,10}
无论如何,我对编程还是个新手,我一直在潜心学习。如果有一个更有效的方法来处理这个除了使用数组,我愿意接受建议,
您的代码实际上几乎是正确的。我想只是有一个)
不合适(我也清理了一下格式)。
int[][][] test = a.Split(':')
.Select(t => Regex.Matches(t, @"(?<={).*?(?=})"))
.Cast<MatchCollection>()
.Select(m => m.Cast<Match>()
.Select(n => n.ToString().Split(',')
.Select(int.Parse)
.ToArray())
.ToArray())
.ToArray();
一个int[][][]
不是最有效的数据结构,但是-你可能想要考虑Dictionary<string, List<int>>
代替。