Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Tidak Peka dalam C#?

Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Tidak Peka dalam C#?

Linda Hamilton
Lepaskan: 2025-01-19 13:01:09
asal
511 orang telah melayarinya

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

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan