【问题标题】:Substring implementation via Span<T>通过 Span<T> 实现子字符串
【发布时间】:2018-07-16 14:45:27
【问题描述】:

当应该利用 Span&lt;T&gt; 时,SubstringFromStart 方法的实现会是什么样子?假设substringLength &lt;= input.Length

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

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

【问题讨论】:

    标签: c# c#-7.2 system.memory


    【解决方案1】:

    这是要走的路吗?

    不,在这里使用Span&lt;T&gt; 是没有用的,因为字符串构造函数需要一个字符数组(目前还没有接受Span&lt;char&gt;)。

    如果:

    • 您将返回Span&lt;char&gt;,而不是string。那么你就不需要字符串分配了;
    • 您收到 Span&lt;char&gt; 作为输入,并且您永远不需要将其具体化为数组,或者您不需要中间具体化(例如,在将其传递给方法时)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 2016-04-28
      • 2010-11-20
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多