这是NET 4.5,所以请随意疯狂。 =)
我有一个非常大的小数列表,我需要将它转换为双精度数组。这里的踢球者是由于列表大小,我希望它在一次传递中完成... O(n)
我可以通过两次传递,但这使得O(2n),这实际上是时间密集的,可能是不必要的。
我现在已经开始对付这个问题几个小时了,而且它只是没有点击。我用过ConvertAll,ToArray,Convert,Lambdas,linq,代表,你说出来。严重的是没有点击我的脑袋。
有人,任何人,告诉我它是如何完成的,所以我可以踢自己,继续我的一天。 = P
答案 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();