如何将字符串列表转换为双精度?

Vis*_*hal 6 c# string double list

编辑:之前我尝试过这两种方法 -

List<double> doubleList =
stringList.ConvertAll(x => (double)x);

List<double> doubleList =
stringList.Select(x =>
(double)x).ToList();
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

无法将'string'类型转换为'double'

我读到了类似于将int转换为双精度的类似内容...但是我有需要转换为双精度列表的字符串列表,而ConvertAll()不能同时使用Select扩展方法.任何人都可以帮助我.

Mar*_*ers 19

如果您使用的是.NET 3.5或更高版本,则select方法应该有效:

List<double> result = l.Select(x => double.Parse(x)).ToList();
Run Code Online (Sandbox Code Playgroud)

这是一些示例代码:

List<string> l = new List<string> { (0.1).ToString(), (1.5).ToString() };
List<double> result = l.Select(x => double.Parse(x)).ToList();
foreach (double x in result)
{
    Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)

结果:

0,1
1,5

有一点需要注意的是,您使用哪种文化来解析字符串.例如,您可能希望使用Parse带有文化和用途的重载CultureInfo.InvariantCulture.