Public static IDictionary

Public static IDictionary<int, SlideRecord> ParseSlideRecords(IEnumerable<string> lines) { return lines.Skip(1) .Select(line => line.Split(';')) .Where(x => x.Length == 3) .Select(x => { if (int.TryParse(x[0], out var slideId) && Enum.TryParse(x[1], true, out SlideType slideType)) { return new { slideId, slideType, unitTitle = x[2] }; } return null; }) .Where(record => record != null) .ToDictionary(record => record.slideId, record => new SlideRecord(record.slideId, record.slideType, record.unitTitle)); } вот код, вынеси вот это в метод if (int.TryParse(x[0], out var slideId) && Enum.TryParse(x[1], true, out SlideType slideType)) { return new { slideId, slideType, unitTitle = x[2] }; } return null;
Дополнительные параметры: newVersion: useFile:
Создано: 24.03.2025 16:31

Public static IDictionary<int, SlideRecord> ParseSlideRecords(IEnumerable lines) { return lines.Skip(1) .Select(line => line.Split(';')) .Where(x => x.Length == 3) .Select(x => { if (int.TryParse(x[0], out var slideId) && Enum.TryParse(x[1], true, out SlideType slideType)) { return new { slideId, slideType, unitTitle = x[2] }; } return null; }) .Where(record => record != null) .ToDictionary(record => record.slideId, record => new SlideRecord(record.slideId, record.slideType, record.unitTitle)); } вот код, вынеси вот это в метод if (int.TryParse(x[0], out var slideId) && Enum.TryParse(x[1], true, out SlideType slideType)) { return new { slideId, slideType, unitTitle = x[2] }; } return null;

Вы можете создать отдельный метод для обработки строки и извлечения необходимых данных. Вот как это может выглядеть:

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 удобно переиспользовать и тестировать отдельно от основной логики парсинга записей слайдов.