【发布时间】:2017-04-04 08:58:33
【问题描述】:
我有一个关于 LINQ 查询和返回类型的问题。我只想从 .csv 文件中读取值,其中有用分号分隔的双精度值,如下所示:
0,016;0,010;-0,020;-0,014;0,020;0,016;-0,019;-0,014;0,023;
使用以下语句从文件中读取可以正常工作:
double pdValue;
double[] pdValues;
var values = File.ReadAllLines(path)
.Select(a => a.Split(';')
.Select(str => double.TryParse(str, out pdValue) ? pdValue : 0));
pdValues = values.ToArray();
但最后一行返回“无法将 System.Collections.Generic.IENumerable
在调试时,我已经可以看到 values 变量将文件中的所有值(以某种方式)保存为数组...
我还没有找到任何东西,有什么可以提示我在这里到底做错了什么。有人可以帮帮我吗?
提前致谢!
【问题讨论】:
-
好吧,你说 values 变量将文件中的所有值(以某种方式)保存为数组。错误因为你说 a.Split(';') ..所以现在它是一个字符串数组.. .
-
使用
File.ReadLines代替File.ReadAllLines更有用,因为File.ReadLines流式传输数据而不是将其全部加载到内存中。 -
文件包含多行?所以这将是
double[][]结果你需要什么?double[][]或double[](所有行合并)