如何将一维数组转化为二维数组的具体规律?
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]];
从12
到FE
的距离不一定固定(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]
像这样
string[] strarry = [12, 34, A1, FE, 12, 34, EA, 0, FE]
12
是开头,
FE
是结束,
变成
string strarry = [[12,34,A1,FE], [12,34,EA,0,FE]];
从12
到FE
的距离不一定固定(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]