Dot-Net

StringComparison.Ordinal 是否與 InvariantCulture 相同,用於測試相等性?

  • January 12, 2011

從他們的簡要描述來看,這聽起來像是字元串比較規則StringComparison.Ordinal,並且StringComparison.InvariantCulture它們在對字元串進行排序的方式上有所不同。就這些嗎?即,這是否意味著我們可以在進行相等比較時使用任一字元串比較規則?

string.Equals(a, b, StringComparison....)

還有額外的功勞:如果我們比較OrdinalIgnoreCase和,答案會有所不同InvariantCultureIgnoreCase嗎?如何?

請提供支持論據和/或參考資料。

例如,它確實很重要 - 有一種叫做字元擴展的東西

   var s1 = "Strasse";
   var s2 = "Straße";

   s1.Equals(s2, StringComparison.Ordinal);          // false
   s1.Equals(s2, StringComparison.InvariantCulture); // true

隨著字元被擴展InvariantCulture為.ß``ss

引用自:https://stackoverflow.com/questions/4674581