Как отсортировать строки в С#

-7

Мне нужно отсортировать массив строк. Как я могу это сделать, если:

Они должны быть размещены в порядке длины строки. Если длины равны, их необходимо поместить в алфавитном порядке.

Есть ли что-нибудь простое?

спросил(а) 2021-01-14T00:24:25+03:00 2 недели назад
1
Решение
61

Здесь традиционный способ в С#...

static void Main(string[] args)
{
List<string> list = new List<string>();
list.Add("1991728819928891");
list.Add("0991728819928891");
list.Add("3991728819928891");
list.Add("2991728819928891");
list.Add("Hello");
list.Add("World");
list.Add("StackOverflow");
list.Sort(
delegate (string a, string b) {
int result = a.Length.CompareTo(b.Length);
if (result == 0 )
result = a.CompareTo(b);
return result;
}
);

Console.WriteLine(string.Join("\n", list.ToArray()));
}

Результат выборки:

Hello
World
StackOverflow
0991728819928891
1991728819928891
2991728819928891
3991728819928891

ответил(а) 2021-01-14T00:24:25+03:00 2 недели назад
60

Вы можете сделать это с помощью LINQ следующим образом:

string[] arr = new[] { "aa", "b", "a" , "c",  "ac" };
var res = arr.OrderBy(x => x.Length).ThenBy(x => x).ToArray();

Другой способ - использовать Array.Sort с пользовательской реализацией IComparer.

ответил(а) 2021-01-14T00:24:25+03:00 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема