9

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

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

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

1 回答 1

4

你的情况没有任何好处。

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

您正在以一种或另一种方式制作字符串的副本。因此,只需使用更简单、更易读的Substring.

于 2019-01-01T18:33:59.727 回答