다음을 통해 공유


StringBuilder.GetChunks 메서드

정의

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 스레드로부터 안전하지 않으므로 동시 스레드를 사용하여 작동하는 것은 불법입니다.

반환된 ReadOnlyMemory<T> 청크는 StringBuilder 수정된 경우 변경되지 않도록 보장되지 않으므로 나중에 사용할 수 있도록 캐시하지 마세요.

ReadOnlyMemory<T>.Span 메서드가 이전 예제에서와 같이 ReadOnlyMemory<T>ReadOnlySpan<T> 만드는 것은 비용이 많이 들기 때문에 중첩된 for 문에서 사용해야 하는 경우 범위에 대한 지역 변수를 만듭니다. 예를 들어:

foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
    var span = chunk.Span;
    for(int i = 0; i < span.Length; i++)
    {
        /* operations on span[i] */
    }
}

적용 대상