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

반환

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 보장되지 않으므로 나중에 사용할 수 있도록 캐시하지 마십시오.

이전 ReadOnlySpan<T> 예제에서 메서드와 마찬가지로 에서 를 ReadOnlyMemory<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] */
    }
}

적용 대상