Как выбрать строку из массива, которая содержит одно равное значение и одно большее, разделенные запятой? - PullRequest
1 голос
/ 11 марта 2019

У меня большой текстовый файл, где строки выглядят так:

9010,6:39:00,6:39:00,U458Z2,29,0,0,""

Мне нужно выбрать строку, в которой указано фиксированное значение "U458Z2", а также где время в третьем столбце равно или больше, чем DateTime.Сейчас.

Я не знаю, как я могу это кодировать.Я не могу использовать подстроку, потому что число в первом столбце имеет для некоторых строк разную длину.

У меня есть это сейчас ..

 String Time = DateTime.Now.ToString("HH:mm:ss");

        var lines = File.ReadAllLines(@"c:\PIDX\Rady\stops.txt");
        foreach (var line in lines)
        {

            if (line.Contains("U458Z2"))
            {
               //do something

            }
        }

1 Ответ

4 голосов
/ 11 марта 2019

Вы можете использовать библиотеку для работы с CSV-файлами, такими как Json.NET , или просто разделить строки на запятые следующим образом:

var now = DateTime.Now;
foreach (var line in lines) {
    // parts becomes an array of strings
    var parts = line.Split(',');

    // DateTime.Parse will set the date component to today's date when parsing times
    var date = DateTime.Parse(parts[2]);

    var code = parts[3];
    if (code == "U458Z2" && date > now) {
       // Do something
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...