【发布时间】:2016-12-26 21:40:09
【问题描述】:
我正在编写一个类,该类包含一个从文件读取后应返回数组的方法,但它总是返回一个空数组。当我在主文件中调用没有类的方法时,一切正常。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectX
{
class ReadFile
{
private System.IO.StreamReader file;
public ReadFile()
{
file = new System.IO.StreamReader(@"E:\\XXXX.csv");
}
private int DataLenght()
{
String line = String.Empty;
int lenght = 0;
line = string.Empty;
while ((line = file.ReadLine()) != null)
{
lenght++;
}
return lenght;
}
public double[] ReadFromFile()
{
double[] arr;
String line = String.Empty;
double[] data = new double[DataLenght()];
string[] dataString = new string[DataLenght()];
List<double> listaDouble = new List<double>();
int x = 0;
String[] parts_of_line;
while ((line = file.ReadLine()) != null)
{
parts_of_line = line.Split(',');
for (int i = 0; i < parts_of_line.Length; i++)
{
parts_of_line[i] = parts_of_line[i].Trim();
data[i] = double.Parse(dataString[i]);
listaDouble.Add(data[i]);
}
}
arr = listaDouble.ToArray();
return arr;
}
}
}
然后我主要想:
ReadFile read = new ReadFile();
double[] arr = read.ReadFromFile;
抱歉,ReadFromFile 方法中的一些不需要的转换,但请尝试一些方法使其正常工作。
【问题讨论】:
-
double[] arr = read.ReadFromFile();
-
你从来没有在 dataString 中放任何东西。
-
while (((line = file.ReadLine()) != null) 等等。看起来像某人做作业..
-
@Crowcoder 我更正它并添加 ();并在 data[i] = double.Parse(dataString[i]); 中使用 part_of_line[i] 而不是空的 dataString[i]但还是一样
-
我认为,您应该将流设置为开始。 stackoverflow.com/questions/2053206/…