我的 csv 文件结构如下:
1,0,2.2,0,0,0,0,1.2,0
0,1,2,4,0,1,0.2,0.1,0
0,0,2,3,0,0,0,1.2,2.1
0,0,0,1,2,1,0,0.2,0.1
0,0,1,0,2.1,0.1,0,1.2
0,0,2,3,0,1.1,0.1,1.2
0,0.2,0,1.2,2,0,3.2,0
0,0,1.2,0,2.2,0,0,1.1
但有 10k 列和 10k 行。我想以这样的方式阅读它,在结果中我得到一个字典,其中 Key 作为行的索引,Value 作为 float 数组,其中包含该行中的每个值。现在我的代码看起来像这样:
var lines = File.ReadAllLines(filePath).ToList();
var result = lines.AsParallel().AsOrdered().Select((line, index) =>
{
var values = line?.Split(',').Where(v =>!string.IsNullOrEmpty(v))
.Select(f => f.Replace('.', ','))
.Select(float.Parse).ToArray();
return (index, values);
}).ToDictionary(d => d.Item1, d => d.Item2);
但它最多需要 30 秒才能完成,所以它很慢,我想优化它以使其更快一些。
慕工程0101907
一只斗牛犬
料青山看我应如是
哆啦的时光机
随时随地看视频慕课网APP
相关分类