Я создаю собственный анализатор, который должен прочитать список данных с разделителями и сохранить результаты в классе. Моя проблема в том, что программа, которая генерирует данные, не всегда включает все разделители.
Например, если последние 3 свойства не имеют значения, будут пропущены последние 3 разделителя.
Я использовал что-то подобное, пока не заметил эту причуду:
var data = message.Split(delimiter);
if (data.Length < 5)
throw new Exception("Invalid message");
Id = data[0];
Property1 = data[1];
Property2 = data[2];
Property3 = data[3];
Property4 = data[4];
Конечно, если строка с разделителями содержит менее 5 элементов, это создает проблему.
Каков наилучший способ разбить потенциально плохую строку с разделителями в класс?
Я не хочу использовать оператор if
для каждого свойства, потому что некоторые строки с разделителями содержат более 50 свойств.
Я думал о создании массива всех свойств и запуске цикла for-each в массиве данных, но я не уверен, что это повлияет на производительность, и хотел бы посмотреть, есть ли лучший способ сначала.