所以问题是:我有一个带有 *.sld 扩展的文件。该文件包含大约 94 列和 24500 行的数字,可以作为普通文本文件读取。从程序中访问这些号码的最佳方式是什么?例如,我希望第 15 列中的所有数字都存储为双精度数。我有什么选择?我已经尝试过 dataTable,但是使用 File.ReadAllLines 加载整个文件需要大约 150MB 的 RAM 内存来运行程序,我必须考虑到程序将使用多个这样的文件。*.sld 文件如下所示:
0.000 96.47 2.51 1.43 2.56 2.47 5.83 -> more columns
1.030 96.47 2.52 1.39 3.14 2.43 5.60 |
2.044 96.47 2.43 1.63 2.96 2.34 5.86 \/
3.058 96.47 2.47 0.76 2.59 2.44 5.62 more rows
4.072 96.47 2.56 1.39 2.99 2.38 5.89
除了前面提到的更多列和行。我的解决方案是这样的:
//Read all lines of opened file to string array
string[] lines = System.IO.File.ReadAllLines(@OFD.FileName,Encoding.Default);
//Remove more than one whitespace with only one whitespace in cycle (cycle not shown)
string partialLine = Regex.Replace(lines[i], @"\s+", " ");
//Split string to string array and add it to dataTable
string[] partialLineElement = partialLine.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
fileData.Rows.Add(partialLineElement);
但是我在访问整列数据时遇到问题,它是一个字符串数组,而不是双数。我需要它将此文件的一列作为双 [] 添加到 ZedGraph。我也尝试将此 dataTable 分配给 dataGridView 为:
dataGridView1.DataSource = fileData;
dataGridView1.Refresh();
但是如何以 double[] 的形式访问列?有什么建议么 ?