C#Writeline它没有给我预期的结果
实际上,这是一个基本问题。C#Writeline它没有给我预期的结果,c#,console.writeline,C#,Console.writeline,实际上,这是一个基本问题。 我试图读取CSV文件,并在控制台中只写入包含“Honda”字样的文件 这样,控制台就不会给出任何结果 但是向我展示所有结果的基本方法如下,它是有效的 class Program { static void Main(string[] args) { var reader = new StreamReader(File.OpenRead(@"C:\Users\Vitor\Downloads\LogCombustivel.csv"));
我试图读取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();
Console.WriteLine(line);
}
Console.ReadLine();
}
}
有关于我做错了什么的线索吗?如果第一个元素是“Honda”,则以下代码将只显示一行: 如果您想加载包含“Honda”的每个元素,那么这是不对的。对此,可以使用Linq的
Contains()
方法
添加Linq的命名空间:
using System.Linq;
并使用以下代码,该代码将在数组中查找任何“Honda”元素:
以下代码仅在第一个元素为“Honda”时显示一行: 如果您想加载包含“Honda”的每个元素,那么这是不对的。对此,可以使用Linq的
Contains()
方法
添加Linq的命名空间:
using System.Linq;
并使用以下代码,该代码将在数组中查找任何“Honda”元素:
添加了用于搜索字符串的linq查询
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.Any( x=> x == "Honda"))
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
}
添加了用于搜索字符串的linq查询
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.Any( x=> x == "Honda"))
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
}
你只想要以“Honda”开头的行吗?是的,这是正确的,所以我想下面的答案没有帮助。你能发布实际的CSV吗?(只有几行)可能会有很多事情。仔细检查文件,或调试并检查阵列。一个明显的可能性是:<代码>值[0 ]。(本田)会更好。您应该考虑使用一个库来读取CSV文件,因为该值可以被引用,等等。也可以考虑使用<代码>文件> RealthRe> <代码>,而不是<代码> StreamReader <代码>(应该使用< /COD>块)<代码> >.你只想要以“Honda”开头的行吗?是的,没错,所以我想下面的答案没有帮助。你能发布实际的CSV吗?(只有几行)可能会有很多事情。仔细检查文件,或调试并检查阵列。一个明显的可能性是:<代码>值(0).Time=(本田)会更好。您应该考虑使用库来读取CSV文件,因为该值可以引用,也可以考虑使用<代码>文件> RealthRe> <代码>,而不是<代码> StreamReader < /C> >(应该在<代码>中使用 Array.IndexOf。(values,“Honda”)>=0或(使用Linq)
值。包含(“Honda”)
而不是带有谓词(Func
)的任何),该谓词只检查是否相等。您可以使用数组。IndexOf(values,“Honda”)>=0
或(使用Linq)值。包含(“Honda”)
而不是带有谓词的任何(Func
)只检查是否相等。
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.Any( x=> x == "Honda"))
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
}