5

什么时候应该利用一个SubstringFromStart方法的实现会是什么样子?Span<T>假设substringLength <= input.Length

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

这是要走的路吗?有没有比 更好、更简洁的方法new string(span.ToArray())

4

1 回答 1

5

这是要走的路吗?

不,在这里 usingSpan<T>是没用的,因为您需要一个字符串构造函数的字符数组(目前还没有接受 a 的数组Span<char>)。

如果出现以下情况,您将Span<T>在此处受益:

  • 您将返回Span<char>,而不是string. 那么你就不需要字符串分配了;
  • 您收到 aSpan<char>作为输入,并且您永远不需要将其物化为数组,或者您不需要中间物化(例如,将其传递给方法时)。
于 2018-02-06T13:58:32.997 回答