Substring и Slice выглядят похоже, но работают принципиально по-разному.
Substring — это
new string(...). Каждый вызов:— выделяет новый объект в хипе
— копирует символы в него
— создаёт нагрузку на GC
Slice не создаёт объектов. Это просто новый указатель + длина поверх той же памяти.
int.Parse(ReadOnlySpan<char>) читает символы напрямую оттуда.Частая ошибка
// Так делать не надо — убивает весь смысл
int id = int.Parse(span.Slice(5, 2).ToString());
ToString() на Span создаёт новую строку. Вернулись к исходной проблеме.Одно правило: если
Substring перед Parse это кандидат на замену. 📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#il_люминатор