Heim > Backend-Entwicklung > C++ > Wie führt man String-Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung in C# durch?

Wie führt man String-Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung in C# durch?

Linda Hamilton
Freigeben: 2025-01-19 13:01:09
Original
511 Leute haben es durchsucht

How to Perform Case-Insensitive String Comparisons in C#?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage