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

时间:2014-01-23 19:17:33

标签: c# arrays list casting

这是NET 4.5,所以请随意疯狂。 =)

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

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

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

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

1 个答案:

答案 0 :(得分:10)

简单的for循环怎么样?

var ary = new double[list.Count];
for (var ii = 0; ii < list.Count; ii++) {
 ary[ii] = Convert.ToDouble(list[ii]);
}
编辑:我坚信LINQ是正确的方法。它简短,精确,干净。

var ary = list.Select(item => Convert.ToDouble(item)).ToArray();