Как получить повторяющиеся значения в linq

var numbs4 = new List<dynamic>() { 12, 9, 75,75, 23, 12, 33, 34, 54, 21, 22 };

Привет, как мне получить {75,75} из возрастающего порядка с помощью LINQ?

Используя Take(), вы ограничиваете количество строк

var result = numbs4.OrderByDescending(x=>x).Skip(1).Take(1).ToList();

Результат: 75

Я хочу, чтобы были задействованы и идентичные: {75,75} Возьмите, ограничьте вас, что я собираюсь делать?

Вы можете использовать этот метод расширения, но с условием a == b).

Gert Arnold 10.08.2018 17:04
1
1
42
1

Ответы 1

Если вы хотите получить все элементы, соответствующие параметру first-after-max, вы можете сгруппировать по, упорядочить группы по ключу в порядке убывания и выбрать всю исходную группу, например:

var result = numbs4
    .GroupBy(x =>x)
    .OrderByDescending(g => g.Key)
    .Skip(1)
    .First()            // That's the second group now
    .ToList();

Демо.

как насчет 75,75,73,73,73,72,72, тогда мне нужно 73,73,73

user10208134 10.08.2018 16:30

@EmblezEd Добавить Skip(1) after OrderBy () `перед First().

Sergey Kalinichenko 10.08.2018 16:43

да, спасибо, пожалуйста, скажите мне, что мне не разрешено в stackoverflow копировать ваш ответ и вставлять его как мой ответ, не изменяя его сначала как мой ответ?

user10208134 10.08.2018 17:01

@EmblezEd Когда ответ требует лишь небольшого изменения, Stack Overflow ожидает, что вы предложите редактирование или прокомментируете автору, чтобы он внес правку. Вы публикуете новый ответ, когда находите ответ самостоятельно.

Sergey Kalinichenko 10.08.2018 17:12

Другие вопросы по теме