繁体   English   中英

将数字字符串转换为数字数组C#?

[英]Convert string of numbers to array of numbers c#?

我有9个以空格分隔的整数的字符串,例如"3 4 6 9 8 8 2 3 4" ,我想将其转换为3x3 int数组。

一个简单的解决方案是在一个新矩阵上进行两个循环,并在我进行转换时转换字符串值。 有没有更优雅的方法可以做到这一点?

使用我的Split扩展从LINQ将集合拆分为`n`个部分?

var nums = s.Split(' ').Select(n=>Int32.Parse(n)).ToList();
var grid = nums.Split(nums.Count / 3);

基本上,您的解决方案是最好的。 您可以使用LINQ完成相同的操作:

int[][] result = 
    s.Split(' ')
     .Select((a, index) => new {index, value = int.Parse(a)})
     .GroupBy(tuple => tuple.index / 3)
     .Select(g => g.Select(tuple => tuple.value).ToArray())
     .ToArray();

对于此问题,LINQ解决方案可能比普通解决方案更差。 但是,该想法可能会有助于解决类似问题。

您可以对“”字符串string.split()进行拆分,然后将获得一个包含数字的字符串数组。 然后,您必须将它们转换为整数,然后将纯数组分配给所需的数组,据我所知,没有其他方法可以遍历数组,但只需要一个循环即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM