【发布时间】:2018-06-21 23:42:00
【问题描述】:
我正在尝试逐行读取.CSV 文件,每行包含:
name, age, occupation, ID
我的 .csv 文件目前有 3 行,当我尝试读取它们时,我的字符串总是得到一个空值。
代码如下:
public static List<Person> ReadFileToList(string filePath)
{
List<Person> personList = new List<Person>();
StreamReader reader = new StreamReader(filePath);
string personstring;
while ((personstring = reader.ReadLine()) != null)
{
Person person = ConvertStringToPerson(personstring);
personList.Add(person);
}
return personList;
}
private static Person ConvertStringToPerson(string personString)
{
string[] personData = personString.Split(',');
if (personData.Length == 4)
{
Guid id = Guid.Parse(personData[3]);
return new Person(personData[0], personData[1], personData[2], id);
}
else
{
throw new FormatException(personString + "is an incorrect format");
}
}
【问题讨论】:
-
糟糕,它是 C#
-
使用窗口资源管理器检查文件大小。它可能是零字节长。
-
刚刚做了。大小:169 字节,磁盘大小:0 字节
-
删除第二个
personstring = reader.ReadLine();,它已经在读取while ((personstring = reader.ReadLine()) != null)中的行。使用File.ReadLinesmsdn.microsoft.com/en-us/library/dd383503#Examples 更容易 -
我用 File.ReadLines 和一个 foreach 循环试了一下,得到了相同的结果,字符串始终为空
标签: c# string csv streamreader readline