LINQ OrderBy ne sortinge pas correctement

J’espère que quelqu’un peut me prouver le contraire ici 🙂

Si je fais ceci:

List a = new List { "b", "c", "a", "aa" }; var b = a.OrderBy(o => o).ToList(); 

Je m’attendrais à ce que le résultat de ‘b’ soit:

 a aa b c 

Au lieu de cela, le résultat est le suivant:

 a b c aa 

Comment puis-je obtenir que OrderBy fasse un sorting alphabétique “correct”? Suis-je tout simplement faux? 🙂

Vous êtes dans la culture danoise, qui traite aa comme å et le met après ø conséquence. Vous pouvez passer un comparateur de chaînes qui agit différemment à OrderBy pour changer cela:

 var b = a.OrderBy(o => o, SsortingngComparer.InvariantCulture).ToList(); 

Très probablement une chose culturelle. Vous pourriez essayer ceci:

 List a = new List { "b", "c", "a", "aa" }; var b = a.OrderBy(o => o, SsortingngComparer.InvariantCultureIgnoreCase).ToList();