Considérons la hiérarchie de classe suivante:LINQ - Sélectionnez les valeurs correctes de la collection imbriquée
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
}
}
Ce que je voudrais faire à l'aide Linq2Objects est d'obtenir un KeyValuePair où pour chaque barre dans la collection allBBar nous sélectionnons les Foo avec la propriété Value maximale. Cela peut-il être fait facilement dans une seule déclaration LINQ?
Et sans l'option MaxBy? –
Ensuite, vous voudriez fondamentalement écrire votre propre implémentation de MaxBy :) Vous * pourriez * faire quelque chose d'horrible, mais ce serait beaucoup plus simple d'inclure MaxBy dans votre code. –
Assez juste. ;) –