Perbandingan rentetan tidak sensitif huruf dalam .NET
Melaksanakan perbandingan rentetan tidak sensitif huruf besar-besaran adalah penting dalam banyak tugas pengaturcaraan. Artikel ini akan membincangkan cara menangani isu ini dengan cekap.
Matlamatnya adalah untuk menjadikan baris kod berikut mengabaikan huruf besar:
<code>drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);</code>
Menggunakan kaedah Equals
dan StringComparison.OrdinalIgnoreCase
nampaknya berkesan:
<code>x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
Walau bagaimanapun, menggunakan kaedah ini dalam ungkapan FindIndex
tidak menghasilkan hasil yang diharapkan.
Masalah utama ialah penggunaan x.Username.Equals
. Walaupun kaedah ini mengendalikan perbandingan tidak sensitif huruf besar-besaran secara dalaman, kaedah ini tidak mengembalikan indeks elemen padanan.
Amalan terbaik untuk perbandingan rentetan tidak sensitif huruf besar .NET
Untuk melaksanakan perbandingan rentetan tidak peka huruf besar-kecil dengan betul dalam .NET, disyorkan untuk menggunakan kaedah String.Compare
dan StringComparison.OrdinalIgnoreCase
:
<code>String.Compare(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase) == 0</code>
Sebagai alternatif, anda boleh menggunakan kaedah String.Equals
dan bendera StringComparison.OrdinalIgnoreCase
:
<code>String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)</code>
MSDN mengesyorkan kaedah ini untuk menguji kesamaan rentetan dan menyusun rentetan masing-masing:
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perbandingan Rentetan Kes-Insensitif dalam .NET Dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!