C # Writeline его не дает мне ожидаемого - PullRequest
0 голосов
/ 28 октября 2018

на самом деле это основной вопрос.
Я пытаюсь прочитать 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();
    }
}

Есть какие-нибудь подсказки о том, что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Добавлен запрос linq, который ищет строку 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.Any( x=> x == "Honda"))
        {
            Console.WriteLine(line);
        }
    }
    Console.ReadLine();
    }
}
0 голосов
/ 28 октября 2018

Следующий код будет отображать строку, только если первый элемент «Honda»:

if (values[0] == "Honda")
{
}

Это неправильно, если вы хотите загрузить каждый элемент, который содержит"Honda". Для этого вы можете использовать Contains() метод Линка.

Добавьте пространство имен для Linq:

using System.Linq;

И используйте вместо этого следующий код, который будет искать в массиве любой элемент «Honda»:

if (values.Contains("Honda"))
{
   // Your Code
}
...