1. 程式人生 > 實用技巧 >C#字串比較忽略大小寫

C#字串比較忽略大小寫

使用場景

字串比較

在EF或者其他地方使用的時候,字串的比較非常常見。

使用全部轉化為大寫或者小寫進行比較,有時候並不能滿足使用需求。

所以使用另外的字串比較非常有意義。

程式碼示例

 class Program
    {
        static void Main(string[] args)
        {
            CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;
            string a = "AaasasaAAaasaa";
            string b = "
aaasasaAaaasaa"; Console.WriteLine(Compare.IndexOf(a, b, CompareOptions.IgnoreCase) ); Console.ReadLine(); } }

CompareOptions補充

CompareOptions並不是只可以用作忽略大小寫進行字串比較,
還可以用來忽略符號、空格等,
可以說非常的好用。
//
    // 摘要:
    //     定義要使用的字串比較選項 System.Globalization.CompareInfo。
    [ComVisible(true
)] [Flags] public enum CompareOptions { // // 摘要: // 指示字串比較的預設選項設定。 None = 0, // // 摘要: // 指示字串比較必須忽略大小寫。 IgnoreCase = 1, // // 摘要: // 指示字串比較必須忽略非空格組合字元,如標註字元。 Unicode Standard 將組合字元定義為與基的字元,以生成新的字元組合的字元。 非空格組合字元不在呈現時本身會佔用空間位置。
IgnoreNonSpace = 2, // // 摘要: // 指示字串比較必須忽略符號,如空白字元、 標點、 貨幣符號、 百分比符號,數學符號、 的與符號,依次類推。 IgnoreSymbols = 4, // // 摘要: // 指示字串比較必須忽略假名型別。 假名型別引用為日文平假名和片假名字元,表示在日語中的語音。 平假名用於本機日語表示式和單詞,而片假名用於從"計算機"或"Internet"等其他語言借用的詞語。 // 拼音聲音可以表示在平假名和片假名。 如果選擇此值,則一種聲音的平假名字元視為相等的同一個聲音的片假名字元。 IgnoreKanaType = 8, // // 摘要: // 指示字串比較必須忽略字元寬度。 例如,日語的片假名字元可以編寫為全形或半形。 如果選擇此值,則片假名字元的全形形式視為相等半形形式編寫的相同字元。 IgnoreWidth = 16, // // 摘要: // 字串比較必須忽略大小寫,然後執行序號比較。 此方法相當於將轉換為大寫使用固定區域性,然後對結果執行序號比較的字串。 OrdinalIgnoreCase = 268435456, // // 摘要: // 指示字串比較必須使用字串排序演算法。 在字串排序、 連字元和撇號,以及其他非字母數字的符號,排在字母數字字元之前。 StringSort = 536870912, // // 摘要: // 指示字串比較必須使用 Unicode utf-16 編碼的連續值的字串 (由程式碼單元比較程式碼單位),從而導致比較速度,但不區分割槽域性。 字串與程式碼單元 // XXXX 開始16 YYYY 開頭的字串之前16, ,如果 XXXX16 小於 YYYY16。 此值不能與其他組合 System.Globalization.CompareOptions // 值,並必須單獨使用。 Ordinal = 1073741824 }