Чтение из файла в массив структур С#
У меня есть структура:
struct TimelineEvent
{
public DateTime DateEvent;
public string NameOfEvent;
public string DescriptionOfEvent;
}
Нужно, используя массив структур записать в неё данные из файла(привожу данные):
1950;событие 1 бла-бла-бла
1991-06-01;какое-то событие 2
2000-01-01;наступил миллениум, ура-ура-ура
Также привожу метод для парсинга даты, если будет нужен:
static DateTime ParseDate(string value)
{
DateTime date;
if (!DateTime.TryParseExact(value, "yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
if (!DateTime.TryParseExact(value, "yyyy-mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
if (!DateTime.TryParseExact(value, "yyyy-mm-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
throw new Exception("WRONG FORMAT");
}
}
}
return date;
}
Cтоит думаю еще указать, что файл уже считан в массив:
static string[] GetStringsFromTextFile(string filePath)
{
string[] stringArray;
if (File.Exists(filePath))
{
stringArray = File.ReadAllLines(filePath);
}
else
{
stringArray = new string[0];
}
return stringArray;
}
Попытался создать метод, но не знаю какие значения возвращать, чтобы на выходе получал struct[]
static void Events()
{
string[] lines = System.IO.File.ReadAllLines("../../../../timeline.csv");
TimelineEvent[] person = new TimelineEvent[lines.Length];
int i = 0;
foreach (string line in lines) // считываем файл в массив
{
string[] items = line.Split(' ');
Console.WriteLine("\t" + line);
person[i].DateEvent = ParseDate(items[0]);
person[i].NameOfEvent = items[1];
i++;
}
for(int j=0;j< lines.Length;j++)
{
Console.WriteLine(person[j].DateEvent + " "+person[j].NameOfEvent);
}
Console.ReadKey();
}