c# - 如何按德语电话簿字母表对字符串进行排序

标签 c# sorting cultureinfo

我正在尝试使用德语字母的电话簿排序对字符串列表进行排序。在德语字母排序中,特殊字符或变音符号由以下表示:

  1. ä -> ae
  2. Ö -> oe
  3. Ü -> ue

因此,升序排序最终应该是这样的:

  1. 广告
  2. A

我在 C# 领域工作,一直在使用 CultureInfo 创建一个新的字符串比较器进行排序。使用它,我得到以下命令:

  1. A
  2. 广告
  3. AF

    List<string> l = new List<string>();
    l.Add("Ad");
    l.Add("Ä");
    l.Add("Af");
    
    var comparer = StringComparer.Create(CultureInfo.CreateSpecificCulture("de"), true);
    var x = l.OrderBy(y => y, comparer);
    
    foreach(var outp in x) {
        Console.WriteLine(outp);
    }
    

有谁知道我如何使用自定义比较器或使用现有的文化比较器来做到这一点?

最佳答案

德语电话簿排序是一种替代排序,可以通过使用“de-DE_phoneb”作为名称而不是使用“de”来激活。

关于c# - 如何按德语电话簿字母表对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58697096/

相关文章:

c# - 使用 asp.net core 2.2 创建类别和子类别依赖列表框

python - 如何对包含 numpy 数组的元组列表进行排序?

json - 从 jsonb_each() 中按 "value"排序数据可靠吗?

c# - CultureInfo.NumberFormat 隐藏逗号

c# - 如何显示特定于文化的本地数字而不是阿拉伯数字?

c# - 在 CRM 4.0 中检索单个 Guid

c# - 如何从 Azure BLOB 中的目录获取所有文件

C# 和 Oracle 数字数据类型

arrays - 按数组 mongodb 中的第一个元素排序

c# - 文化信息名称