StringBuilder.GetChunks 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回一个对象,该对象可用于循环访问从此 StringBuilder 实例创建的 ReadOnlyMemory<Char>
中表示的字符块。
public:
System::Text::StringBuilder::ChunkEnumerator GetChunks();
public System.Text.StringBuilder.ChunkEnumerator GetChunks ();
member this.GetChunks : unit -> System.Text.StringBuilder.ChunkEnumerator
Public Function GetChunks () As StringBuilder.ChunkEnumerator
返回
ReadOnlyMemory<Char>
中区块的枚举数。
注解
可以使用如下所示的代码循环访问内存区域中的区块:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
此方法的目的是有效地提取 常量StringBuilder的数据。 如果在区块枚举不完整时修改 StringBuilder,则结果未定义。 StringBuilder 也不线程安全,因此使用并发线程对其进行操作是非法的。
如果修改 StringBuilder,则不保证返回的 ReadOnlyMemory<T> 区块保持不变,因此请不要缓存它们以供以后使用。
从 ReadOnlyMemory<T> 创建 ReadOnlySpan<T>(如上一示例中的 ReadOnlyMemory<T>.Span 方法所做的那样),因此,如果需要在嵌套 for
语句中使用它,请为范围创建局部变量。 例如:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}