C#,解析同一行上的多个数字

C#,解析同一行上的多个数字,c#,.net,file,parsing,format,C#,.net,File,Parsing,Format,如果我有这样一句话: 6 3 3 3 33 3 3 3 3 7 2 1 1 1 11 1 1 1 13 2 2 1 1 1 1 1 1 21 1 2 2 如何将其解析为C#中的int数组?问题是我没有确定数量的数字和特定数量的数字要解析 string numbersString = "6 3 3 3 33 3 3 3 3 7 2 1 1 1 11 1 1 1 13 2 2 1 1 1 1 1 1 21 1 2 2"; var numbers = numbersString.Split().Se

如果我有这样一句话:

6 3 3 3 33 3 3 3 3 7 2 1 1 1 11 1 1 1 13 2 2 1 1 1 1 1 1 21 1 2 2
如何将其解析为C#中的int数组?问题是我没有确定数量的数字和特定数量的数字要解析

string numbersString = "6 3 3 3 33 3 3 3 3 7 2 1 1 1 11 1 1 1 13 2 2 1 1 1 1 1 1 21 1 2 2";
var numbers = numbersString.Split().Select(token => int.Parse(token)).ToArray();
这是假设所有的数字都在整数范围内

更新。当然,只有当每个字符串部分表示一个有效的整数时,这才有效-否则
int.Parse
将下降。

您可以使用:


首先挖掘String.Split API调用,然后键入casting将字符串转换为数字


这是一个很好的起点。

string.spliton the space+1:这也是我的方法。请注意,如果字符串中包含任何无法转换为int的内容,则会爆炸!你能不能用台巴司这样它就不会爆炸了?或者这从根本上说是个坏主意吗?@BrianJ,嗯,你当然可以,尽管这需要更多的工作。如果你愿意,我可以用一个样本来更新帖子。你不需要为我更新,但谢谢你提供。我主要是从设计的角度询问这是否是处理可能不包含整数的行的好方法。@BrianJ,这主要取决于具体情况。在某些情况下,您可能希望发出默认值,例如0、跳过标记或抛出异常。因此,一般来说,在这里引入
TryParse
可能是个好主意。OP要求使用int数组,因此您只需要一半:)
string test = "A B C D E F G";
var array = test.Split(' ');