如何将一维数组转化为二维数组的具体规律?

How to convert the specific law of one-dimensional array into two-dimensional array?

像这样

string[]  strarry = [12, 34, A1, FE, 12, 34, EA, 0, FE]

12是开头, FE 是结束, 变成

string strarry = [[12,34,A1,FE], [12,34,EA,0,FE]];

12FE距离不一定固定(4)

我该怎么做?谢谢

我不确定这段代码对你的适用性如何,但也许它能让你有所收获。祝你好运!

        var strarry = "12, 34, A1, FE, 12, 34, EA, 0, FE";
        var splittedArrays = strarry.Split(", FE", StringSplitOptions.RemoveEmptyEntries);

        for (int i = 0; i < splittedArrays.Length; i++)
        {
            if (splittedArrays[i][0].Equals(','))
            {
                splittedArrays[i] = splittedArrays[i].Substring(2);
            }

            splittedArrays[i] += ", FE";
            Console.WriteLine(splittedArrays[i]);
        }

如果我没理解错的话(你想从 ordinal 中获得 jagged array string[][] 一个 - string[]),你可以尝试 Linq 以便将 GroupBy 项放入子数组中:

  using System.Linq;

  ...

  string[] strarry = new string[]
    {"12", "34", "A1", "FE", "12", "34", "EA", "0", "FE"};

  // Here we exploit side effects, be careful with them
  int groupIndex = 0;

  string[][] result = strarry
    .GroupBy(value => value == "FE" ? groupIndex++ : groupIndex)
    .Select(group => group.ToArray())
    .ToArray();

一起来看看:

  string report = string.Join(Environment.NewLine, result
    .Select(line => "[" + string.Join(", ", line) + "]"));

  Console.Write(report);

结果:

[12, 34, A1, FE]
[12, 34, EA, 0, FE]