StringBuilder.GetChunks Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy objektumot ad vissza, amely az ebből StringBuilder a példányból létrehozott karaktertömbön ReadOnlyMemory<Char> keresztüli iterálásra használható.
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
Válaszok
Az adattömbök enumerátora a ReadOnlyMemory<Char>.
Megjegyzések
A memóriatartományban lévő adattömböket a következő kóddal iterálhatja:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
foreach(char ch in chunk.Span)
{ /* operations on ch */ }
Ennek a módszernek a célja egy állandóStringBuilder adatainak hatékony kinyerése. Ha a StringBuilder rendszer módosítja az adattömb enumerálásának befejezetlen részét, az eredmény nem lesz meghatározva. StringBuilder sem szálbiztos, ezért az egyidejű szálakkal való üzemeltetés illegális.
A ReadOnlyMemory<T> visszaadott adattömbök nem garantáltan változatlanok maradnak, ha módosítják őket StringBuilder , ezért ne gyorsítótárazza őket későbbi használatra.
ReadOnlySpan<T> Egy (ReadOnlyMemory<T>az ReadOnlyMemory<T>.Span előző példában használt módszerhez hasonlóan) létrehozott változó költséges, ezért hozzon létre egy helyi változót a spanhoz, ha beágyazott for utasításban kell használnia. Például:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}