List<T> vs Span<T> vs ReadOnlySpan<T> в C#: когда что выбирать
List<T> -- это растущая коллекция в куче; Span<T> и ReadOnlySpan<T> -- представления только на стеке поверх памяти, которой вы уже владеете. Используйте List<T> для всего, что вы храните, возвращаете из async или наращиваете; Span<T> для изменяемого представления без аллокаций в синхронном методе; ReadOnlySpan<T> для разбора только для чтения поверх строк, литералов u8 и срезов.