Avatar ·

Wie zählt man die Anzahl der Vorkommen eines Zeichens oder einer Teilzeichenkette in einem String in C#?

Hallo zusammen! Ich bin ein Anfänger in C# und habe eine Aufgabe, die einfach erscheint, aber ich finde keine elegante Lösung. Ich muss zählen, wie oft ein bestimmtes Zeichen (z.B. 'a') in einem String vorkommt. Ich habe versucht, eine Schleife manuell zu schreiben, aber das sieht umständlich aus. Hier ist mein aktueller Code:
string text = "Hello, world! Hello, C#!";
char target = 'l';
int count = 0;
for (int i = 0; i < text.Length; i++)
{
    if (text[i] == target)
        count++;
}
Console.WriteLine(count); // Gibt 4 aus
Das funktioniert, aber ich denke, dass es in C# eine eingebaute Lösung geben sollte. Außerdem muss ich nicht nur Zeichen, sondern auch ganze Teilzeichenketten zählen. Zum Beispiel, wie oft das Wort "Hello" in der Zeichenkette "HelloHelloWorld" vorkommt. Wenn ich denselben Ansatz mit einer Schleife verwende, wird es für Teilzeichenketten sehr verwirrend – ich muss die Übereinstimmung über mehrere Indizes prüfen. Könnt ihr mir sagen, ob es in .NET fertige Methoden zum Zählen von Vorkommen gibt? Vielleicht so etwas wie