我已经阅读了几篇有关如何使用Span替换某些字符串操作的文章。因此,我已经在代码库中更新了一些代码以使用此新功能,但是,要能够就地使用它,则必须调用.ToString()
。
.ToString()
是否有效地抵消了我使用Span<T>
而不是Substring
所带来的好处,因为这将不得不分配内存?在这种情况下,如果以这种方式使用Span,我将如何获得收益?或者仅仅是不可能?
//return geofenceNamesString.Substring(0, 50); Previous code
return geofenceNamesString.AsSpan().Slice(0, 50).ToString();
答案 0 :(得分:3)
您的情况没有好处。
如果将多个“引用”保留在同一数据数组中,则跨度很有用。例如,如果您将文件读取到RAM中,然后保留对每一行的引用,则不必复制每行,而只需将其位置保留在大字符串中即可。
您正在以一种或另一种方式复制字符串。因此,只需使用Substring
的更简单,更易读的方式即可。