Использование Span<T> в качестве замены для подстроки

Я прочитал несколько статей о том, как Span можно использовать для замены определенных строковых операций. Поэтому я обновил некоторый код в моей кодовой базе, чтобы использовать эту новую функцию, однако, чтобы иметь возможность использовать ее на месте, мне нужно вызвать .ToString(),

Ли .ToString() эффективно свести на нет выгоду, которую я получаю от использования Span<T> скорее, чем Substring как для этого придется выделять память? В каком случае, как мне воспользоваться преимуществами Span, или это просто невозможно?

//return geofenceNamesString.Substring(0, 50); Previous code
return geofenceNamesString.AsSpan().Slice(0, 50).ToString();

1 ответ

Решение

Там нет никакой выгоды в вашем случае.

Диапазон полезен, если вы храните несколько "ссылок" в одном массиве данных. Например, если вы читаете файл в ОЗУ, а затем сохраняете ссылки на каждую строку, вам не нужно копировать каждую строку, а только сохранять ее позицию в большой строке.

Вы делаете копию своей строки так или иначе. Так что просто идти с более простым, более читаемым способом Substring,

Другие вопросы по тегам