StringBuilder.GetChunks Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne un objet qui peut être utilisé pour itérer au sein des blocs de caractères représentés dans un ReadOnlyMemory<Char> objet créé à partir de cette 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 blocs dans le ReadOnlyMemory<Char>.
Remarques
Vous pouvez itérer les blocs de la plage de mémoire avec du code comme suit :
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 constanteStringBuilder. Si la StringBuilder valeur est modifiée pendant que l’énumération de segments est incomplète, le résultat n’est pas défini. StringBuilder n’est pas non plus thread-safe. Par conséquent, le fonctionnement avec des threads simultanés n’est pas valide.
Les ReadOnlyMemory<T> blocs retournés ne sont pas garantis de rester inchangés si l’objet StringBuilder est modifié, et ne les mettez pas en cache pour une utilisation ultérieure.
La création d’une ReadOnlySpan<T> variable locale à partir d’un ReadOnlyMemory<T> (comme la ReadOnlyMemory<T>.Span méthode dans l’exemple précédent) est coûteuse. Créez donc une variable locale pour l’étendue si vous devez l’utiliser dans une instruction imbriquée for . Par exemple:
foreach (ReadOnlyMemory<char> chunk in sb.GetChunks())
{
var span = chunk.Span;
for(int i = 0; i < span.Length; i++)
{
/* operations on span[i] */
}
}