如何将字符串拆分为多维数组或锯齿状数组?

Elm*_*lmo 4 .net c# vb.net variables

我有这个:

String s = "abcd,efgh,ijkl";
Run Code Online (Sandbox Code Playgroud)

我想以编程方式将其转换为:

String[,] s = {{"ab","cd"},{"ef","gh"},{"ij","kl"}};
Run Code Online (Sandbox Code Playgroud)

该字符串可以是可变长度的。谁能告诉我该怎么做?

das*_*ght 5

分成这样String[][]可以完成:

var res = s.Split(',')
    .Select(p => Regex.Split(p, "(?<=\\G.{2})"))
    .ToArray();
Run Code Online (Sandbox Code Playgroud)

转换为String[,]需要一个额外的循环:

var twoD = new String[res.Length,res[0].Length];
for (int i = 0 ; i != res.Length ; i++)
    for (int j = 0 ; j != res[0].Length ; j++)
        twoD[i,j] = res[i][j];
Run Code Online (Sandbox Code Playgroud)

2D部分要求所有以分隔的字符串,长度相同。所述res阵列的阵列,在另一方面,可以是“锯齿状的”,即行可以有不同的长度。