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
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章