C# 是否可以只读索引和切片span<;char>;使用Unicode文本元素?

C# 是否可以只读索引和切片span<;char>;使用Unicode文本元素?,c#,unicode,.net-core,C#,Unicode,.net Core,处理Unicode字符串复杂性的一种方法是使用System.Globalization.StringInfo提供的文本元素功能。我的问题是,是否有一种针对文本元素的索引/切片ReadOnlySpan的好方法,以避免在处理文本元素的解析代码中进行分配(中描述的解析是使用ReadOnlySpan减少分配的一个方面),或者这需要在我的代码中大量重新实现Unicode算法吗?StringInfo实际上不是一个非常令人兴奋的类;它是对CharUnicodeInfo.getunicodecegory功能的一

处理Unicode字符串复杂性的一种方法是使用
System.Globalization.StringInfo
提供的文本元素功能。我的问题是,是否有一种针对文本元素的索引/切片
ReadOnlySpan
的好方法,以避免在处理文本元素的解析代码中进行分配(中描述的解析是使用
ReadOnlySpan
减少分配的一个方面),或者这需要在我的代码中大量重新实现Unicode算法吗?

StringInfo
实际上不是一个非常令人兴奋的类;它是对
CharUnicodeInfo.getunicodecegory
功能的一个相当薄的包装。不幸的是,它也只提供了一个接口,该接口采用单独的
char
或带有索引的
string
,而不是
ReadOnlySpan
。干净的解决方案是请求人们实现必要的覆盖,或者更好的是,提交一个这样的请求(这并不特别难;
CharUnicodeInfo.InternalGetCategoryValue
是真正的工作马,它使用存储在
int
中的UTF-32).
StringInfo.GetCurrentTextElementLen
StringInfo
的非无聊部分,它同样可以在
string
上操作,而在
Span
上则可以轻松操作。