C#从列表<decimal>转换为double数组

The*_*Rob 4 c# arrays casting list

这是NET 4.5,所以随意疯狂的想法.=)

我有一个非常大的小数列表,我需要将其转换为双精度数组.这里的踢球者是由于列表大小,我希望它在一次传递中完成... O(n)

我可以通过两次传递,但这使得O(2n),这实际上是时间密集的,可能是不必要的.

我现在已经开始对付这个问题几个小时了,而且它只是没有点击.我用过ConvertAll,ToArray,Convert,Lambdas,linq,代表,你说出来.严重的是没有点击我的脑袋.

有人,任何人,告诉我它是如何完成的,所以我可以踢自己,继续我的一天.= P

Mar*_*čič 10

一个简单的for循环怎么样?

var ary = new double[list.Count];
for (var ii = 0; ii < list.Count; ii++) {
 ary[ii] = Convert.ToDouble(list[ii]);
}
Run Code Online (Sandbox Code Playgroud)

编辑:我坚信LINQ是正确的方法.它简短,精确,干净.

var ary = list.Select(item => Convert.ToDouble(item)).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 这太疯狂了——考虑到 .net 4.5 的所有高级功能,你还吐出一个基本的 for 循环?!&lt;- 这说明了为什么通常情况下,最严格的前向解决方案确实是最好的。做得好。=) (2认同)