使用 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
.
我已经阅读了几篇关于如何使用 Span 来替换某些字符串操作的文章。因此,我更新了我的代码库中的一些代码以使用此新功能,但是,为了能够就地使用它,我必须调用 .ToString()
。
.ToString()
是否有效地抵消了我使用 Span<T>
而不是 Substring
的好处,因为这必须分配内存?在这种情况下,如果以这种方式跨度,我该如何获得好处,还是不可能?
//return geofenceNamesString.Substring(0, 50); Previous code
return geofenceNamesString.AsSpan().Slice(0, 50).ToString();
你的情况没有任何好处。
如果将多个 "references" 保存到同一个数据数组中,则跨度很有用。例如,如果您将文件读入 RAM,然后保留对每一行的引用,那么您不必 copy 每行,而只需保留其在大字符串中的位置。
您正在以某种方式复制您的字符串。因此,只需使用更简单、更易读的方式 Substring
.