C#: Prüfen auf
Enthält Zeichenfolge ohne Groß- Kleinscheibung
Wie prüft man einen C# String, ob ein Teilstring
enthalten ist. Dabei soll die Großschreibung und Kleinschreibung keine Rolle
spielen.
Lösung:
Mit IndexOf
und dem Textvergleich *IgnoreCase
wird geprüft, ob ein Teil-Text in einem Text vorkommt.
Sting.IndexOf("_all", StringComparison.InvariantCultureIgnoreCase)
>-1
|
Standard ohne Ignrieren
von Groß-/ Klein
Prüfe auf Vorkommen eines Teilstrings MIT Groß-/
Kleinschreibung
Wenn man keinen Parameter StringComparison setzt, dann wird
als Standard die Groß-/Kleinschreibung berücksichtigt.
bool IsOwn = false;
if (sAction.IndexOf("_own) >0) {
IsOwn = true; }
|
Wenn kein Treffer vorkommt, dann ist das Ergebnis -1
Korrektur
if (sAction.IndexOf("_all",
StringComparison.InvariantCultureIgnoreCase) >-1 ||
sAction.ToLower() =="index")
{
<a asp-controller="Notes" asp-action="Index_All" class="mynav_a_bg50" style="@sStyle_Activ_Notes">Notizen</a>
}
else
{
<a asp-controller="Notes" asp-action="Index_Own" class="mynav_a_bg50" style="@sStyle_Activ_Notes">Notizen</a>
}
|
Intellisense: IndexOf gibt die Parameter
StringComparison.CurrentCulture
StringComparison.CurrentCultureIgnoreCase
StringComparison.InvariantCulture
StringComparison.InvariantCultureIgnoreCase
StringComparison.Ordinal
StringComparison.OrdinalIgnoreCase
Im Debugger sieht man, dass beim Vergleich mit *IgnoreCase
der Treffer bei Zeichen 5 vorkommt, aber beim Standard Verleich mit
.IndexOf(..) wird nichts gefunden und das Ergebnis ist -1
Teilstring, Substring, Instr, InstrRev