【发布时间】:2018-10-29 02:04:04
【问题描述】:
实际上这是一个基本问题。
我正在尝试读取 CSV 文件并在控制台中仅写入包含“Honda”字样的文件。
class Program
{
static void Main(string[] args)
{
var reader = new StreamReader(File.OpenRead(@"C:\Users\Vitor\Downloads\LogCombustivel.csv"));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
if (values[0] == "Honda")
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
}
这样,控制台不会给出任何结果。
但是向我展示所有结果的基本方式如下,它的工作原理
class Program
{
static void Main(string[] args)
{
var reader = new StreamReader(File.OpenRead(@"C:\Users\Vitor\Downloads\LogCombustivel.csv"));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
Console.WriteLine(line);
}
Console.ReadLine();
}
}
关于我做错了什么的任何线索?
【问题讨论】:
-
您只想要以“Honda”开头的行吗?
-
是的,没错
-
所以我猜下面的答案没有帮助。你能发布实际的CSV吗? (只有几行)
-
这可能是很多事情。仔细检查文件,或调试并检查阵列。一种明显的可能性是
values[0].Trim() == "Honda"会更好。 -
您应该考虑使用库来读取 CSV 文件,因为可以引用值等。还可以考虑使用
File.ReadLines而不是StreamReader(这应该位于using块中)。
标签: c# console.writeline