сортировка списка с помощью C # по частоте появления в списке одинаковых строк - PullRequest
1 голос
/ 03 октября 2019

У меня есть список:

dave
maggie
john
stuart
john
john
dave
john
maggie
maggie

Мой желаемый результат будет:

john
john
john
john
maggie
maggie
maggie
dave
dave
stuart

1 Ответ

6 голосов
/ 03 октября 2019

Сначала я группирую их. Затем закажите их по количеству от каждой группы. Наконец, используйте SelectMany, чтобы получить плоскую структуру от каждого отдельного имени в группах.

var myList = new List<string>()
{
    "dave",
    "maggie",
    "john",
    "stuart",
    "john",
    "dave",
    "john",
};

var result = myList
    .GroupBy(x => x)
    .OrderByDescending(x => x.Count())
    .SelectMany(x => x)
    .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...