使用 Span<T> 替代 Substring

Using Span<T> as a replacement for Substring

我已经阅读了几篇关于如何使用 Span 来替换某些字符串操作的文章。因此,我更新了我的代码库中的一些代码以使用此新功能,但是,为了能够就地使用它,我必须调用 .ToString()

.ToString() 是否有效地抵消了我使用 Span<T> 而不是 Substring 的好处,因为这必须分配内存?在这种情况下,如果以这种方式跨度,我该如何获得好处,还是不可能?

//return geofenceNamesString.Substring(0, 50); Previous code
return geofenceNamesString.AsSpan().Slice(0, 50).ToString();

你的情况没有任何好处。

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

您正在以某种方式复制您的字符串。因此,只需使用更简单、更易读的方式 Substring.