将包含以空格分隔的数字的字符串转换为双精度列表c#

时间:2014-01-06 21:55:17

标签: c# string list numbers double

我有这个字符串05201 05594 05453 05521 05330 04952 04984 04526,我需要把它变成一个双打数组。

我怎么能这样做,而不包括最后的额外空间?


编辑:我需要跳过该步骤并将其添加到现有双打列表的末尾,而不是变成双打数组

4 个答案:

答案 0 :(得分:4)

试试这个:

var splitted = yourString.Split(new []{" "}, 
                                          StringSplitOptions.RemoveEmptyEntries);
existingListOfDoubles.AddRange(splitted.Select(double.Parse));

ideone处尝试。编辑以匹配问题

答案 1 :(得分:2)

var str = "05201 05594 05453 05521 05330 04952 04984 04526";
var result = str.Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries)
                .Select(Convert.ToDouble).ToList();

答案 2 :(得分:2)

string stringList = "05201 05594 05453 05521 05330 04952 04984 04526 ";   
var doubles = stringList.TrimEnd().Split(' ').Select(s => double.Parse(s)).ToList();

答案 3 :(得分:1)

拆分并转换。这假定您的字符串仅包含数字 使用List<double>代替数组来获得更高级的功能

string inputString = "05201 05594 05453 05521 05330 04952 04984 04526 ";
string[] results = inputString.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
List<double> d = new List<double>();
d.AddRange(results.Select(x => Convert.ToDouble(x)));

现在,如果您想要存储在数组中,只需将List<double>转换回数组

即可
double[] values = d.ToArray();

相反,如果您想将这些结果附加到现有的双打列表

List<double> currentValues = new List<double>() {5345, 4213};
currentValues.AddRange(d);