代码之家  ›  专栏  ›  技术社区  ›  Chris

使用span<t>替换子字符串

  •  5
  • Chris  · 技术社区  · 6 年前

    我已经阅读了一些关于如何使用SPAN替换某些字符串操作的文章。因此,我在代码库中更新了一些代码来使用这个新特性,但是为了能够在适当的地方使用它,我必须调用 .ToString() .

    toSTRIN() 有效地否定我从使用中获得的好处 Span<T> 而不是 Substring 因为这需要分配内存?在这种情况下,如果跨度是这样的,我该如何获得好处呢,还是不可能?

    //return geofenceNamesString.Substring(0, 50); Previous code
    return geofenceNamesString.AsSpan().Slice(0, 50).ToString();
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Nyerguds    6 年前

    你的情况没有好处。

    如果将多个“引用”保存到同一个数据数组中,则跨度很有用。例如,如果您将一个文件读取到RAM中,然后保留对每一行的引用,那么您不必 复制 每一行,但只保留其在大字符串中的位置。

    您正在以某种方式复制字符串。所以只要用更简单、更易读的方式 Substring .