Maison >développement back-end >C++ >Comment puis-je regrouper une chaîne en segments de taille personnalisée en C# ?

Comment puis-je regrouper une chaîne en segments de taille personnalisée en C# ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-27 01:26:091007parcourir

How Can I Chunkify a String into Custom-Sized Segments in C#?

Fractionnement efficace des chaînes en morceaux de taille personnalisée en C #

Cet article démontre une méthode C # pour diviser une chaîne en segments plus petits et de taille égale. Imaginez que vous avez une longue chaîne:

<code class="language-csharp">string longString = "1111222233334444";</code>

Et vous devez le diviser en morceaux d'une longueur spécifique, disons 4 caractères chacun. La sortie souhaitée serait:

<code>"1111"
"2222"
"3333"
"4444"</code>

La solution: une approche propre et concise

La façon la plus efficace d'y parvenir est d'utiliser les méthodes de Linq Enumerable.Range et Select:

<code class="language-csharp">static IEnumerable<string> ChunkifyString(string str, int chunkSize)
{
    if (string.IsNullOrEmpty(str) || chunkSize <= 0)
    {
        yield break; // Handle null, empty, or invalid chunk size
    }

    for (int i = 0; i < str.Length; i += chunkSize)
    {
        yield return str.Substring(i, Math.Min(chunkSize, str.Length - i));
    }
}</code>

Cette méthode améliorée utilise une boucle for et yield return pour de meilleures performances, en particulier avec des chaînes très grandes. Il gère également explicitement les chaînes d'entrée nulles ou vides et les tailles de morceaux non positives, ce qui le rend plus robuste. La fonction Math.Min garantit que le dernier morceau ne dépasse pas la longueur restante de la chaîne.

Exemple d'utilisation:

<code class="language-csharp">string myString = "111122223333444455";
int chunkSize = 4;

foreach (string chunk in ChunkifyString(myString, chunkSize))
{
    Console.WriteLine(chunk);
}</code>

Ceci sera sorti:

<code>1111
2222
3333
4444
55</code>

Cette approche gère élégamment les chaînes dont les longueurs ne sont pas parfaitement divisibles par la taille du morceau, garantissant que tous les personnages sont inclus dans les morceaux résultants. Cette solution est à la fois concise et efficace, ce qui le rend idéal pour diverses tâches de manipulation de cordes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn