在 Microsoft.Extensions.Primitives 包库中,有一个名为
然而,查看 StringSegment 的实现 类时,我没有看到它实际上有什么用处。我看到了一个缓冲区,我猜这可能会更好地操作部分字符(也许是“段”部分?)。我还看到了几个帮助函数,它们与常规字符串中已经可用的函数(如 StartsWith/Endswith、Substring 等)在行为上非常相似 - 如果不是完全相同的话。aspnet-core docs 列出了这些内容,但同样缺乏“为什么”应该使用它的上下文。
StringSegment
的类,注释表明它是“子字符串的优化表示”。我之前不知道这个特殊的类,直到我发现 aspnet announcement #244,其中提到:“Microsoft.Net.Http.Headers 转换为使用 StringSegments”。然而,查看 StringSegment 的实现 类时,我没有看到它实际上有什么用处。我看到了一个缓冲区,我猜这可能会更好地操作部分字符(也许是“段”部分?)。我还看到了几个帮助函数,它们与常规字符串中已经可用的函数(如 StartsWith/Endswith、Substring 等)在行为上非常相似 - 如果不是完全相同的话。aspnet-core docs 列出了这些内容,但同样缺乏“为什么”应该使用它的上下文。
那么,StringSegment
类的目的是什么?在哪些场景下适合使用它?
当我操作字符串时,在我的应用程序代码中调用这个类是否有用?我们能否举一个例子,说明它的优点?
StringSegment
。在这种情况下,当获取请求的Headers
属性时,可以直接解析标头。如果创建StringSegments
,那么你将不必要地为所有字符串段创建所有对象。 - Servy