Zeichenfolgenvergleich ohne Berücksichtigung der Groß-/Kleinschreibung in C#
Beim Zeichenfolgenvergleich in C# wird standardmäßig die Groß-/Kleinschreibung beachtet. Das bedeutet, dass beim Vergleich zweier Zeichenfolgen jeder Unterschied in der Groß-/Kleinschreibung dazu führt, dass die Zeichenfolgen als ungleich betrachtet werden. Es gibt jedoch Situationen, in denen Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung erforderlich sind, z. B. beim Abgleichen von Benutzereingaben oder beim Identifizieren eindeutiger Werte in einer Datenbank.
Bedenken Sie den folgenden Code:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);</code>
Dieser Code prüft, ob der aktuelle Benutzer registriert ist, indem er das Attribut „Benutzername“ des registrierten Benutzers mit dem Attribut „Benutzername“ des aktuellen Benutzers vergleicht. Wenn die Benutzernamen jedoch unterschiedliche Groß- und Kleinschreibung haben, schlägt der Vergleich fehl.
Um bei diesem Vergleich die Groß-/Kleinschreibung zu berücksichtigen, können Sie die Methode String.Equals
und den Parameter StringComparison.OrdinalIgnoreCase
verwenden:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
Der obige Code führt jedoch nicht zu den erwarteten Ergebnissen. Dies liegt an dem in FindIndex
-Lambda-Ausdrücken verwendeten Gleichheitsoperator (==), der immer Vergleiche unter Beachtung der Groß-/Kleinschreibung durchführt.
Um dieses Problem zu beheben, folgen Sie den Ratschlägen von MSDN und verwenden Sie die Methode String.Equals
als einzigen Vergleichsoperator:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
Dieser Code prüft, ob der aktuelle Benutzer ohne Berücksichtigung der Groß-/Kleinschreibung registriert ist, sodass Benutzernamen eine andere Groß-/Kleinschreibung haben können.
Das obige ist der detaillierte Inhalt vonWie führt man String-Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung in C# durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!