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)));