Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Insensitif dengan Betul dalam C#?
Perbandingan rentetan tidak sensitif huruf dalam C#
Apabila melakukan perbandingan rentetan dalam C#, anda biasanya perlu mengabaikan kes. Walaupun pada mulanya anda mungkin mempertimbangkan untuk menggunakan kaedah StringComparison.OrdinalIgnoreCase
dengan Equals
, ini mungkin membawa kepada hasil yang tidak dijangka.
Dalam contoh kod berikut:
<code class="language-csharp">drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));</code>
Masalahnya ialah menggunakan kaedah Equals
dengan ungkapan lambda. Ungkapan lambda menjangkakan ungkapan boolean, tetapi kaedah Equals
mengembalikan tidak sah.
Dalam .NET Framework 4 dan ke atas, disyorkan untuk menggunakan kaedah String.Compare
digabungkan dengan StringComparison.OrdinalIgnoreCase
untuk perbandingan rentetan tidak sensitif huruf besar-besaran, seperti ditunjukkan di bawah:
<code class="language-csharp">String.Compare(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase) == 0</code>
Sebagai alternatif, untuk menjadikan kod lebih mudah dibaca dan kurang terdedah kepada ralat, anda boleh menggunakan kaedah String.Equals
, seperti ini:
<code class="language-csharp">String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase) </code>
Kaedah ini memastikan perbandingan rentetan dilakukan dalam cara yang tidak peka huruf besar-besaran, memberikan hasil yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Insensitif dengan Betul dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!