C# String.Compare 默認使用當前文化的排序規則,但本質上是按字符的 Unicode 代碼點(數值)逐個比較。
啊 (U+554A) 按 (U+6309) 奧 (U+5965) 昂 (U+6602),代碼點遞增。string S1 = "芸燁湘楓";
string S2 = "用一生下載你";
Console.WriteLine(String.Compare(S1, S2)); // 輸出 1,表示 S1 > S2
比較首字符:芸 (U+82B8) vs 用 (U+7528),0x82B8 > 0x7528,故 S1 > S2。
若需按拼音、筆畫等規則排序,可使用 String.Compare(str1, str2, new CultureInfo("zh-CN"), CompareOptions.None) 或實現 IComparer<string>。
理解底層比較邏輯,有助於正確處理多語言排序需求。