Если я правильно понимаю,
Memory<T>
в любом случае является структурой, доступной только для чтения, и ее поля неизменны.Хотя память, на которую это указывает, не является.
Мутации на срезе будут отражены в памяти, на которую он указывает в data
, что, как я полагаю, вы хотите.Предупреждения в этом случае могут быть проигнорированы:
// ReSharper disable once ImpureMethodCallOnReadonlyValueField
Также есть относительно известный вопрос, на который Джон Скит и Эрик Липперт говорят о нечистых методахи их разветвления на структуры
Нечистый метод вызывается для поля только для чтения