Рассмотрим следующую иерархию классов:LINQ - Выберите правильные значения из вложенной коллекции
public class Foo
{
public string Name { get; set; }
public int Value { get; set; }
}
public class Bar
{
public string Name { get; set; }
public IEnumerable<Foo> TheFoo { get; set; }
}
public class Host
{
public void Go()
{
IEnumerable<Bar> allBar = //Build up some large list
//Get Dictionary<Bar, Foo> with max foo value
}
}
То, что я хотел бы сделать с помощью Linq2Objects должен получить KeyValuePair, где для каждого бара в коллекции allBBar мы выбираем Foo с значение максимального значения. Можно ли это сделать легко в одном заявлении LINQ?
И без опции MaxBy? –
Тогда вы в принципе захотите написать свою собственную реализацию MaxBy :) Вы * можете * сделать что-то ужасное, но было бы очень аккуратно просто включить MaxBy в ваш код. –
Достаточно честный. ;) –