Реализация подстроки через 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>
в качестве входных данных, и вам никогда не потребуется материализовать его в массив, иначе вам не понадобится промежуточная материализация (например, при передаче его в метод).