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

标签 c# .net linq

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

起初我采用:

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

...这真的是甜蜜...但是今天,我决定切换回一个简单的 for 循环来将数组中的所有字符串解析为 Double,毫不奇怪,基准测试似乎很受欢迎for 循环……所以我应该切换回基本的 for 循环吗?

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

最佳答案

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

与 LINQ 的 .ToArray() 不同,它会预先分配一个大小正确的数组,并且不会调整大小。
这应该与手动循环没有区别。

关于c# - 将字符串数组转换为双数组的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9524682/

相关文章:

c# - 应用程序生命周期事件的异步方法(例如Application_Closing)

c# - 类型或命名空间名称 'Linq' 不存在

c# - VB.NET 到 C# 转换器

c# - 如何在 .net Core 2.2 中实现 JWT token

.net - WPF 组合框搜索项

c# - Asp.Net C# 调用单个验证器

c# - LINQ to Entities 无法识别方法 'System.Collections.Generic.Dictionary` 2[System.Int32,System.String] ToDictionary

sql - SQL 中的统计查询 - NHibernate LINQ 有可能吗?

c# - PDF 和 Silverlight,它们可以一起工作吗?

c# - 从html覆盖到aspx页面,但是菜单不见了,为什么?