character count minus HTML-Zeichen C #

Ich versuche herauszufinden, wie die Anzahl der Zeichen in einer Zeichenfolge gezählt, die Zeichenfolge abgeschnitten und dann zurückgegeben werden kann. Ich benötige diese Funktion jedoch, um HTML-Tags NICHT zu zählen. Das Problem ist, dass, wenn HTML-Tags gezählt werden und sich der Kürzungspunkt in der Mitte eines Tags befindet, die Seite fehlerhaft angezeigt wird.

Das ist was ich bisher habe ...

public string Truncate(string input, int characterLimit, string currID) {
    string output = input;

    // Check if the string is longer than the allowed amount
    // otherwise do nothing
    if (output.Length > characterLimit && characterLimit > 0) {

        // cut the string down to the maximum number of characters
        output = output.Substring(0, characterLimit);

        // Check if the character right after the truncate point was a space
        // if not, we are in the middle of a word and need to remove the rest of it
        if (input.Substring(output.Length, 1) != " ") {
            int LastSpace = output.LastIndexOf(" ");

            // if we found a space then, cut back to that space
            if (LastSpace != -1)
            {
                output = output.Substring(0, LastSpace);
            }
        }
        // end any anchors
        if (output.Contains("<a href")) {
            output += "</a>";
        }
        // Finally, add the "..." and end the paragraph
        output += "<br /><br />...<a href='Announcements.aspx?ID=" + currID + "'>see more</a></p>";
    }
    return output;
}

Aber ich bin damit nicht zufrieden. Gibt es einen besseren Weg, dies zu tun? Wenn Sie eine neue Lösung für dieses Problem anbieten könnten oder vielleicht Vorschläge dazu, was ich zu dem, was ich bisher habe, hinzufügen könnte, wäre das großartig.

Disclaimer: Ich habe noch nie mit C # gearbeitet, daher kenne ich mich mit den Konzepten für die Sprache nicht au

Danke, Hristo

Antworten auf die Frage(2)

Ihre Antwort auf die Frage