使用場景
字符串比較
在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 }