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 는 스레드에서 안전하지 않으므로 동시 스레드를 통해 작동할 수 없습니다.
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] */
}
}