Получить объекты с максимальным значением из сгруппированных по запросу linq - PullRequest
0 голосов
/ 01 марта 2011

Я получил следующий запрос linq:

var invadersOrderedInColumns = from i in invaders
                               group i by i.GetPosition().X;

Это упорядочит захватчиков с одинаковой позицией X.Следующее, что я хочу сделать, - это получить захватчик с наибольшим значением Y из каждого из этих столбцов.

Представьте себе, что каждый захватчик будет представлен в виде черного блока на следующем изображении.Это будет представлять захватчиков после вышеупомянутого запроса linq.Каждый X = Значение является ключом.

Invaders Ordered in Columns

Теперь из каждой из этих групп (столбцов) я хочу получить захватчиков с самым высоким Yпозиция (таким образом, нижний захватчик каждого столбца, когда вы смотрите на картинку):

Get the highest Y value

Как мне это сделать с помощью запроса Linq?

1 Ответ

1 голос
/ 01 марта 2011

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

var invadersOrderedInColumns = invaders
    .GroupBy(d => d.GetPosition().X)
    .Select(d => d.OrderByDescending(y => y.GetPosition().Y).First());
...