Здравствуйте! Возникла проблема при изменении формата переменной. У меня есть класс:
public class Parsing
{
public string FIO { get; set; }
public DateTime Date { get; set; }
}
И сам код:
string line;
StreamReader file = new StreamReader(@"Путь");
List<Parsing> csv = new List<Parsing>();
while ((line = file.ReadLine()) != null)
{
var csvRow = line.Split(';').Skip(1).ToList();
var objList = new Parsing
{
FIO = (csvRow[0]),
Date = DateTime.Parse(csvRow[1]),
};
csv.Add(objList);
}
Когда я пытаюсь, изменить поле "Date" на формат даты, то мне выдает ошибку: "Данная строка не распознана как действительное значение DateTime. Обнаружено неизвестное слово, начинающееся с индекса 0." Я понимаю, что это связанно с тем, что у меня заголовок имеет тип string, а уже поля имеют формат Datetime, но как мне это обойти, я думал, что .Skip(1) мне поможет?
Вот пример CSV-файла:
Дата рождения
12.12.1912
01.01.1901
В приведенном коде Skip вызывается на результате разделения строки.
То есть, в данном случае пропускается один столбец. а не строка с заголовком.
Чтобы пропустить строку заголовка, нужно либо считать эту строку один раз в холостую, не обрабатывая ее.
Либо воспользоваться методом File.ReadLines, который возвращает IEnumerable<string>
и применить к нему Skip.
Например так:
List<Parsing> csv = (from line in File.ReadLines(@"Путь").Skip(1)
let csvRow = line.Split(';').Skip(1).ToList()
select new Parsing
{
FIO = (csvRow[0]),
Date = DateTime.Parse(csvRow[1]),
}).ToList();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть коллекция, в которой каждому элементe соответствует 4 значения(один из них, это имя, которое отображается свойством DisplayMember в комбобоксе...
ЗдравствуйтеЯ пытаюсь разобраться в том, как правильнее составлять архитектуру ASP
У меня есть большой стринговый массив и нужно по нему заполнить ComboBox в ListBox можно сделать так listBoxItems