C# 将浮点[]列表转换为双精度[]列表

C# 将浮点[]列表转换为双精度[]列表,c#,list,type-conversion,double,C#,List,Type Conversion,Double,我想将列表转换为列表 List f=新列表(); 列表d=新列表(); //…将浮点数组添加到f。。。 d、 AddRange((doulbe[])f);//无法将类型float[]转换为double[] 有没有办法投出这个?这样就不需要for循环,因为我有许多列表要转换。您可以使用: d.AddRange(f.Select(flArray => Array.ConvertAll(flArray, f => (double)f))); 或: AddRange作为for循环实现。您

我想将
列表
转换为
列表

List f=新列表();
列表d=新列表();
//…将浮点数组添加到f。。。
d、 AddRange((doulbe[])f);//无法将类型float[]转换为double[]
有没有办法投出这个?这样就不需要for循环,因为我有许多列表要转换。

您可以使用:

d.AddRange(f.Select(flArray => Array.ConvertAll(flArray, f => (double)f)));
或:


AddRange作为for循环实现。您也需要这样做(使用for循环、linq查询或枚举集合的任何东西)。您不能就地执行
Array.ConvertAll
,这是在后台使用一个循环。请记住
浮点数
双精度
大小不同。你不能仅仅从一个
浮点数
中提取位,然后将其重新解释为
双精度
。然而,这就是你要求演员们做的。@DmitryBychenko Sally这不起作用,你会得到一个无效的卡斯特例外,但这也是我的第一个想法
d.AddRange(f.Select(flArray => Array.ConvertAll(flArray, f => (double)f)));
f.ForEach(flArray => d.Add(Array.ConvertAll(flArray, f => (double)f)));