C# String vergleich ohne Beachtung der Groß- Kleinschreibung?

2 Antworten

String.Equals Methode (System) | Microsoft Docs

Tut exakt das, was Du haben willst.

Abgesehen davon:

Fang vorne an mit den Grundlagen, also ein gutes Buch oder die einzige gute Tutorial-Reihe in der MSDN-Doku von Microsoft - keine Video-Tutorials. Das ist eine ganze Menge und das kannst Du nicht an einem Tag durchgearbeitet haben ;)

Und lerne recherchieren. Wenn Du dich unter die "ich erfrage jede Kleinigkeit auf gutefrage.net"-Anfänger gesellst, kannst Du's auch gleich bleiben lassen, Du wirst nie irgendwas damit erreichen. Effektive Recherche und das Stellen der richtigen Fragen ist eine der wichtigsten Fähigkeiten in dem Bereich.

Und schau dir die Metadaten von C# an, Visual Studio zeigt dir das mit F12 (Cursor auf einem Typ) oder der IntelliSense-Hilfe (such danach) an. Drüber kannst Du dir alles anschauen, was es gibt, das wird natürlich erschlagen, aber z.B. hättest Du die String.Equals-Methode ganz leicht gefunden, wenn Du dir alle Methoden vom String angeschaut hättest. Die allermeisten Dinge bei C# sind auch sehr gut aufgebaut und benannt, mit etwas Erfahrung und einem Gefühl für die Namen, kann man so sehr schnell fündig werden. Außerdem "lernt" VisualStudio 2022, wie Du arbeitest - ich bin immer wieder erstaunt, wie gut die Vorschläge sind.

Wenn Du so lernst, wie Du effektiv die Möglichkeiten selber durchforsten kannst, dann lernst Du sehr viel dabei und sparst auch noch Zeit.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
Meine Frage an dieser Stelle ist, wie ich es schaffe, dass die Groß- und Kleinschreibung bei dem vergleich ignoriert wird.

https://docs.microsoft.com/de-de/dotnet/api/system.string.tolower?view=

Mit der Methode verwandelst du jedes Zeichen im String zu einem Kleinbuchstaben. Das vergleichst du dann mit denen im Filter hinterlegen Wörtern. Diese müssen aber natürlich auch alles aus Kleinbuchstaben bestehen.

Daher wäre die sicherste Methode zum Beispiel sowas:

string[] filter = {"Schimpfwort1", "Schimpfwort2", "Schimpfwort3", "Schimpfwort4"}
foreach (int f in filter) {
	if (msg.toLower() == f.toLower()) {
		//do stuff here, like delete the message...
	}
}

Das verwandelt zum Vergleichen einfach beide Strings in Kleinbuchstaben um. Wobei du natürlich vergleichen willst, ob das gelistete Wort irgendwo im String vorkommt, daher müsstest du die if-Abfrage etwas anders stricken!

Stichwort:

https://docs.microsoft.com/de-de/dotnet/api/system.string.contains?view=net-6.0