Perbandingan rentetan tidak sensitif huruf dalam C#
Perbandingan rentetan dalam C# adalah sensitif huruf besar-kecil secara lalai. Ini bermakna apabila membandingkan dua rentetan, sebarang perbezaan dalam kes akan menyebabkan rentetan itu dianggap tidak sama rata. Walau bagaimanapun, terdapat situasi di mana perbandingan tidak sensitif huruf besar diperlukan, seperti memadankan input pengguna atau mengenal pasti nilai unik dalam pangkalan data.
Pertimbangkan kod berikut:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);</code>
Kod ini menyemak sama ada pengguna semasa didaftarkan dengan membandingkan atribut "Nama Pengguna" pengguna berdaftar dengan atribut "Nama Pengguna" pengguna semasa. Walau bagaimanapun, jika nama pengguna mempunyai kes yang berbeza, perbandingan akan gagal.
Untuk menjadikan perbandingan ini tidak sensitif huruf besar-besaran, anda boleh menggunakan kaedah String.Equals
dan parameter StringComparison.OrdinalIgnoreCase
:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
Namun, kod di atas tidak menghasilkan hasil yang diharapkan. Ini disebabkan oleh operator kesamaan (==) yang digunakan dalam FindIndex
ungkapan lambda, yang sentiasa melakukan perbandingan sensitif huruf besar-besaran.
Untuk menyelesaikan isu ini, ikut nasihat MSDN dan gunakan kaedah String.Equals
sebagai satu-satunya pengendali perbandingan:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
Kod ini menyemak sama ada pengguna semasa didaftarkan dalam cara tidak peka huruf besar-besaran, membenarkan nama pengguna mempunyai huruf besar yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Tidak Peka dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!