Saya menggunakan Array.Contains
metode pada array string. Bagaimana saya bisa membuat itu tidak sensitif huruf besar-kecil?
172
array.Contains("str", StringComparer.OrdinalIgnoreCase);
Atau tergantung pada keadaan tertentu, Anda mungkin lebih suka:
array.Contains("str", StringComparer.CurrentCultureIgnoreCase);
array.Contains("str", StringComparer.InvariantCultureIgnoreCase);
CurrentCulture
), Anda harus menggunakanOrdinal
daripadaInvariantCulture
.InvariantCulture
. Penggunaan salah satu dari tiga pilihan di atas tergantung pada keadaan. Saya tidak keberatan dengan pemesanan ulang Anda, tetapi saya menghapus komentar "mungkin tidak". Sudah jelas dalam jawaban bahwa Anda harus memilih yang cocok untuk Anda dalam situasi saat ini.Beberapa catatan penting dari pihak saya, atau setidaknya menaruh beberapa informasi yang didistribusikan di satu tempat - mengenai tip di atas dengan StringComparer seperti di:
array.Contains()
adalah metode ekstensi LINQ dan karenanya hanya berfungsi dengan standar dengan .NET 3.5 atau lebih tinggi, membutuhkan:using System;
using System.Linq;
Tetapi: di .NET 2.0
Contains()
metode sederhana (tanpa memperhitungkan kekurangan huruf besar-kecil) paling tidak mungkin seperti ini, dengan pemain:if ( ((IList<string>)mydotNet2Array).Contains(“str”) ) {}
Karena metode Contains () adalah bagian dari antarmuka IList, ini berfungsi tidak hanya dengan array, tetapi juga dengan daftar, dll.
sumber
Menerapkan IEqualityComparer khusus yang memperhitungkan ketidakpekaan huruf besar-kecil.
Selain itu, periksa ini . Maka (secara teori) yang harus Anda lakukan adalah:
sumber
sumber