var values = "4774,55567,44477|14555,4447,5687|416644,4447,5623";
var rows = values.Split('|');
var matrix = new string[rows.Length][];
for (var i = 0; i < rows.Length; i++)
{
matrix[i] = rows[i].Split(',');
}
还有一个使用LINQ的更优雅的解决方案:
var values = "4774,55567,44477|14555,4447,5687|416644,4447,5623";
var data = values
.Split('|')
.Select(r => r.Split(','))
.ToArray();
5条答案
按热度按时间e4yzc0pl1#
您可以将其拆分两次:
还有一个使用LINQ的更优雅的解决方案:
编辑:正如@RandRandom所指出的,上面的解决方案创建了一个锯齿状数组。下面解释一下不同之处:link。如果你不想使用交错数组,那么你需要创建一个
matrix
数组,指定[rows.Length, rows[0].Split(',').Length]
的维度,并在两个for循环的帮助下赋值:r3i60tvu2#
可以使用
split the string based on the | character
,然后使用linq.Select()
,基于,
拆分每行并创建一个二维数组ogq8wdun3#
如果可以考虑使用锯齿数组而不是2D数组,请使用Linq:
nx7onnlm4#
可以使用String.Split()方法将字符串拆分为子字符串数组,然后使用嵌套循环循环遍历该数组并将值添加到二维数组中。
下面是一个例子:
这将按分隔符'拆分字符串值|'并创建一个子字符串数组。然后,它将遍历每个子字符串,并再次用','拆分它,然后将结果存储在一个16行3列的2D数组vals中。
kyvafyod5#
尝试以下操作: