newVersion:
useFile:
Public static IDictionary<int, SlideRecord> ParseSlideRecords(IEnumerable
Вы можете создать отдельный метод для обработки строки и извлечения необходимых данных. Вот как это может выглядеть:csharp<br>public static IDictionary<int, SlideRecord> ParseSlideRecords(IEnumerable<string> lines)<br>{<br> return lines.Skip(1)<br> .Select(line => line.Split(';'))<br> .Where(x => x.Length == 3)<br> .Select(x => ParseSlideData(x))<br> .Where(record => record != null)<br> .ToDictionary(record => record.slideId,<br> record => new SlideRecord(record.slideId,<br> record.slideType, <br> record.unitTitle));<br>}<br><br>private static (int slideId, SlideType slideType, string unitTitle)? ParseSlideData(string[] data)<br>{<br> if (int.TryParse(data[0], out var slideId) &&<br> Enum.TryParse(data[1], true, out SlideType slideType))<br> {<br> return (slideId, slideType, data[2]);<br> }<br> return null;<br>}<br>
### Изменения:
1. Я создал новый метод ParseSlideData
, который принимает массив строк (string[] data
) и возвращает кортеж с данными (int slideId, SlideType slideType, string unitTitle)?
.
- Этот метод пытается разобрать данные. Если парсинг успешен, он возвращает кортеж с необходимыми значениями, иначе null
.
2. В методе ParseSlideRecords
теперь вызывается ParseSlideData
, что делает основной метод более читаемым и понятным.
Теперь метод ParseSlideData
удобно переиспользовать и тестировать отдельно от основной логики парсинга записей слайдов.