Imaginez que vous avez une classe comme ceci:Comment puis-je sélectionner l'élément avec la valeur la plus élevée en utilisant LINQ?
class Foo {
string key;
int value;
}
Comment choisiriez-vous le Foo avec la valeur la plus élevée d'un IEnumeralbe<Foo>
?
Un problème de base consiste à maintenir le nombre d'itérations faible (c'est-à-dire à 1), mais cela affecte la lisibilité. Après tout, le meilleur que j'ai pu trouver était quelque chose comme ceci:
IEnumerable<Foo> list;
Foo max = list.Aggregate ((l, r) => l.value > r.value ? l : r);
Pouvez-vous penser à un meilleur moyen?
Modifier: list.OrderByDescending(l => l.value).First();
était mon option préférée, mais ce n'est pas O (n).
Maintenant, c'est attrayant. – mafu
Oui, morelinq est génial. – tzaman
ou, list.Where (w => w.value == liste.Max (m => valeur m)) –