9 votes

StringBuilder C# : Vérifier s'il se termine par une nouvelle ligne

J'ai un StringBuilder qui accumule du code. Dans certains cas, il y a 2 lignes vides entre les blocs de code, et j'aimerais faire en sorte qu'il n'y ait plus qu'une seule ligne vide.
Comment puis-je vérifier si le code actuel a déjà une ligne vide à la fin ? (Je préfère ne pas utiliser son ToString() en raison de problèmes de performance).

-1voto

David Ewen Points 1486

Au cas où quelqu'un se retrouverait ici comme je l'ai fait, voici une méthode générale pour vérifier la fin d'un fichier StringBuilder pour une chaîne de caractères arbitraire sans avoir à utiliser ToString sur celui-ci.

public static bool EndsWith(this StringBuilder haystack, string needle)
{
    var needleLength = needle.Length - 1;
    var haystackLength = haystack.Length - 1;
    if (haystackLength < needleLength)
    {
        return false;
    }
    for (int i = 0; i < needleLength; i++)
    {
        if (haystack[haystackLength - i] != needle[needleLength - i])
        {
            return false;
        }
    }
    return true;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X