更改 C# 排序行为

Eri*_*rik 4 c# linq sorting

可以说我有字符串abc_abc2_。现在,通常在排序时,C#abc2_会在 后面abc_,留下结果:

  1. abc_
  2. abc2_

如果重要的话,我用它来排序:

     var element = from c in elements
     orderby c.elementName ascending
     select c;
Run Code Online (Sandbox Code Playgroud)

我怎样才能改变这个?我希望 abc_ 排在最后。反转不是一个选项,因为列表包含两个以上的元素。

luk*_*san 6

最简单的解决方案是使用 .NET Framework 内置的序数字符串比较器:

var element = from c in elements
    .OrderBy(c => c.elementName, StringComparer.Ordinal) 
    select c; 
Run Code Online (Sandbox Code Playgroud)

无需自定义比较器类!