Учитывая упорядоченный список:Почему String.CompareTo не учитывает длину строки?
var lst = new []{"1","10","2","b","ab"};
var lst2 = lst.OrderBy(c => c);
результат lst2
:
1, 10, 2, аб, б
Почему String.Compare()
также не измерить на длине строка, когда она сравнивается? я бы подумал, что результат будет больше, как это:
1, 2, 10, B, AB
Поскольку 10 (что-то (1) и Somthing (0)) должны быть после 2 (что-то (2) и ничего)
Может ли кто-нибудь дать веские основания для этого?
Хотя я могу понять 2 до 10 (естественный сорт), я не могу понять, почему b до ab. – Vladimir
Вы можете сделать 'var lst2 = lst.OrderBy (c => c.Length) .ThenBy (c => c);' но он не даст того, что вы хотите. –
@ Владымир Фролов: Это не так. Вероятно, скопируйте/вставьте ошибку. – Jon