Сортировка списка с учетом регистра list.Sort() - C#
Не могу разобраться как сделать сортировку такого типа: Сначала все с заглавных букв по алфавиту, затем со строчных по алфавиту
Изначально:
fedor develop
Fedor Manager
Ivan manager
ivan Develop
Ivan Develop
ivan Manager
fedor Manager
Ivan Manager
Ivan develop
Fedor develop
После сортировки:
Fedor Manager
Fedor develop
Ivan Develop
Ivan Manager
Ivan develop
Ivan manager
fedor Manager
fedor develop
ivan Develop
ivan Manager
Ну например так:
static int Compare(string l, string r)
{
var commonResult = l.Zip(r, Compare).SkipWhile(n => n == 0).FirstOrDefault();
return (commonResult != 0) ? commonResult : l.Length.CompareTo(r.Length);
}
static int Compare(char l, char r)
{
var caseResult = char.IsUpper(r).CompareTo(char.IsUpper(l));
return caseResult != 0 ? caseResult : l.CompareTo(r);
}
var s = new List<string>()
{
"fedor develop", "Fedor Manager", "Ivan manager", "ivan Develop", "Ivan Develop",
"ivan Manager", "fedor Manager", "Ivan Manager", "Ivan develop", "Fedor develop"
};
s.Sort(Compare);
Это сортирует ваш пример как надо (перемещает заглавные буквы вперёд), но поскольку вы не сформулировали требования на относительный порядок кириллицы и небуквенных символов, там возможны неожиданности.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я пытался создать автообновление своей программы через zip-архивДля этого использую DotNetZip (Ionic
Здравствуйте! Недавно столкнулся с проблемой скачивания картинки с сайта litresru
Доброй ночи, подскажите как использовать ProgressBar при загрузке множества файловУ меня всегда разный список ссылок и программа узнает об этом...
Как узнать какая версия nuget установлена? Если просто ввести: