@daniil14056

Можно ли изменить строку, не меняя размер в с# не создавая новую на самом низком уровне?

Строка хранится, в куче, имеет параметры типа тип длинна, а дальше блок памяти из символов(или символ конца строки), и эти символы же можно поменять) Не меняя размер строки! И не создавая новой.
Может через marshal или небезопасный код или еще что.

(В java я что-то такое делал, а с# не гуглится).
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Можно через ансейф и сырые указатели её поменять, но не нужно.
Если вам нужна мутабельная строка, то используйте Span<Char>
как-то так можно через unsafe

using System;

var str = "A";
Console.WriteLine(str); // A
unsafe
{
	fixed (char* chars = &str.GetPinnableReference())
	{
		chars[0] = 'B';
	}
}
Console.WriteLine(str); // B

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы