繁体   English   中英

将字符串数组转换为双数组的最快方法?

[英]Fastest way to convert string array to double array?

我最近不得不处理将大字符串数组转换为数字数组的问题,我想知道目前最快的方法是什么。

起初我采用了:

double[] doubles = sarray.Split(',').Select(Double.Parse).ToArray();

...这实在是甜的......但今天,我决定切换回用于循环一个简单的解析在阵列双所有字符串,并没有太多令人惊讶的基准似乎倾向于for循环..所以我要切换回到基本的 for 循环?

另外,我想知道是否有更好的类型可用于存储拆分的字符串,例如HashSet在此转换过程中可能表现更好?

Array.ConvertAll(sarray.Split(','), Double.Parse);

与 LINQ 的.ToArray() ,它预先分配了一个正确大小的数组,并且不进行任何调整大小。
这应该与手卷循环无法区分。

当我使用:

double[] doubles = Array.ConvertAll(sarray.split(','), Double.Parse);

我收到此错误:

无法从用法推断方法“System.Array.ConvertAll(TInput[], System.Converter)”的类型参数。 尝试明确指定类型参数。

但是当我这样做时它起作用了:

double[] doubles = Array.ConvertAll(sarray.split(','), new Converter<string, double>(Double.Parse));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM