当应利用SubstringFromStart时,如何实现Span<T>方法?假设substringLength <= input.Length:

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

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

最佳答案



不,在这里使用Span<T>是没有用的,因为您需要为字符串构造函数使用字符数组(尚无一个可以接受Span<char>的对象)。

如果满足以下条件,您将在此处使用Span<T>会受益:

  • 您将返回Span<char>而不是string。这样,您就不需要分配字符串了;
  • 您会收到一个Span<char>作为输入,您无需将其实例化为数组,也不需要中间的实例化(例如,将其传递给方法时)。
  • 10-07 13:52
    查看更多