在C#中解析字符串中的多个双精度数

我有一个包含已知数量的double值的字符串。 解析字符串并将结果插入匹配的标量变量的最简洁方法是什么(通过C#)。 基本上,我想做相当于这个sscanf语句,但在C#中:

 sscanf( textBuff, "%lg %lg %lg %lg %lg %lg", &X, &Y, &Z, &I, &J, &K ); 

…假设“ textBuff ”可能包含以下内容:

 “-1.123 4.234 34.12 126.4 99 22”

……并且每个值之间的空格字符数可能会有所不同。

谢谢你的任何指示。

 string textBuff = "-1.123 4.234 34.12 126.4 99 22"; double[] result = textBuff .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .Select(s => double.Parse(s)) .ToArray(); double x = result[0]; // ... double k = result[5]; 

要么

 string textBuff = "-1.123 4.234 34.12 126.4 99 22"; string[] result = textBuff .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); double x = double.Parse(result[0]); // ... double k = double.Parse(result[5]); 

您可以使用String.Split(”,StringSplitOptions.RemoveEmptyEntries)将其拆分为“单个值”。 然后它是一个直的Double.Parse(或TryParse)

 foreach( Match m in Regex.Matches(inputString, @"[-+]?\d+(?:\.\d+)?") ) DoSomething(m.Value);