Вы можете сделать:
- группы по каждому пункту
- заказа по нисходящей на основе подсчета группы
- выберите уникальный элемент на основе групповой ключ
Как:
List<int> list = new List<int> { 1, 2, 3, 2, 1, 6, 2 };
var query = list.GroupBy(item => item)
.OrderByDescending(grp => grp.Count())
.Select(grp => grp.Key);
foreach (var item in query)
{
Console.WriteLine(item);
}
EDIT:
Если вы не хотите, уникальный предмет, но все элементы на основе их возникновения, то используйте:
var query = list.GroupBy(item => item)
.OrderByDescending(grp => grp.Count())
.SelectMany(grp => grp);
SelectMany
будет Свести перечислите и выдайте такой вывод, как:
2
2
2
1
1
3
6
Да, это возможно. Что вы пробовали? – gunr2171
Кроме того, что бы вы хотели, чтобы результат выглядел? – gunr2171
В случае дублирования частоты, какой должен быть ваш вторичный заказ? Численное значение asc/desc? –