StringBuilder.GetChunks StringBuilder.GetChunks StringBuilder.GetChunks StringBuilder.GetChunks Method

Définition

Retourne un objet qui peut être utilisé pour itérer au sein des blocs de caractères représentés dans un ReadOnlyMemory<Char> créé à partir de cette instance StringBuilder.Returns an object that can be used to iterate through the chunks of characters represented in a ReadOnlyMemory<Char> created from this StringBuilder instance.

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

Retours

Énumérateur pour les segments de ReadOnlyMemory<Char>.An enumerator for the chunks in the ReadOnlyMemory<Char>.

Remarques

Vous pouvez itérer les segments dans la plage de mémoire avec un code similaire à ce qui suit :You can iterate the chunks in the memory range with code like the following:

foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
    foreach(char ch in chunk.Span)
        { /* operations on ch */ }

L’objectif de cette méthode est d’extraire efficacement les données d’une constante StringBuilder.The purpose of this method is to efficiently extract the data of a constant StringBuilder. Si le StringBuilder est modifié alors que l’énumération de blocs est incomplète, le résultat n’est pas défini.If the StringBuilder is modified while the chunk enumeration is incomplete, the result is undefined. StringBuildern’est pas non plus thread-safe, donc son utilisation avec des threads simultanés est illégale.StringBuilder is also not thread-safe, so operating on it with concurrent threads is illegal.

Il ReadOnlyMemory<T> n’est pas garanti que les segments retournés restent inchangés si le StringBuilder est modifié, donc ne les mettez pas en cache pour une utilisation ultérieure.The ReadOnlyMemory<T> chunks returned are not guaranteed to remain unchanged if the StringBuilder is modified, so do not cache them for later use.

La création ReadOnlySpan<T> d’un ReadOnlyMemory<T> à partir d' ReadOnlyMemory<T>.Span un (comme le fait la méthode dans l’exemple précédent, est coûteuse, créez une variable locale pour l’étendue si vous for devez l’utiliser dans une instruction imbriquée).Creating a ReadOnlySpan<T> from a ReadOnlyMemory<T> (as the ReadOnlyMemory<T>.Span method does in the previous example, is expensive, so create a local variable for the span if you need to use it in a nested for statement. Par exemple :For example:

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

S’applique à