Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Insensitif dengan Betul dalam C#?

Bagaimana untuk Melakukan Perbandingan Rentetan Kes-Insensitif dengan Betul dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-19 12:46:09154semak imbas

How to Perform Case-Insensitive String Comparisons Correctly in 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!

Kenyataan:
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