Реализация подстроки через Span<T>

Как бы реализация SubstringFromStart метод выглядит как когда Span<T> следует использовать? Если предположить, substringLength <= input.Length:

 ReadOnlySpan<char> span = input.AsSpan().Slice(0, substringLength);
 return new string(span.ToArray());

Это путь? Есть ли лучший, более краткий способ, чем new string(span.ToArray())?

1 ответ

Решение

Это путь?

Нет, используя Span<T> здесь бесполезен, так как вам нужен символьный массив для строкового конструктора (нет ни одного, который принимает Span<char> еще).

Вы бы выиграли, используя Span<T> вот если:

  • Вы бы вернули Span<char>, а не string, Тогда вам не понадобится распределение строк;
  • Вы получаете Span<char> в качестве входных данных, и вам никогда не потребуется материализовать его в массив, иначе вам не понадобится промежуточная материализация (например, при передаче его в метод).
Другие вопросы по тегам