Сортировка списка с учетом регистра .Sort(); - C#
Формулировка задачи:
Как отсортировать список List<>, чтобы сначала шли строки начинающиеся с заглавной буквы, а потом со строчной?
Изначально
Petya
fedya
Ivan
lines.Sort(); выдает
fedya
Ivan
Petya
А нужно
Ivan
Petya
fedya
Решение задачи: «Сортировка списка с учетом регистра .Sort();»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace ns
{
class Program
{
static int Comparer(string s1, string s2)
{
if (char.IsUpper(s1[0]) && char.IsLower(s2[0])) return -1;
if (char.IsUpper(s2[0]) && char.IsLower(s1[0])) return 1;
return string.Compare(s1, s2, false);
}
static void Main(string[] args)
{
List<string> list = new List<string> { "Zina", "Petya", "fedya", "Ivan", "anna" };
list.Sort(Comparer);
foreach (string word in list)
Console.WriteLine(word);
}
}
}