EDIT: Okay, jetzt haben wir einen etwas klareren Satz von Anforderungen (obwohl noch weit davon entfernt, klar geschrieben zu sein) der einfachste Ansatz wäre wahrscheinlich:
%Vor% Leider bietet LINQ keine einfache Möglichkeit, "das Element mit dem maximalen Wert" (anstelle des Maximalwerts selbst) zu erhalten. Ich habe eine Methode in MoreLINQ , die dies jedoch tut, genannt MaxBy
:
Ursprüngliche Antwort (Gruppierung nach ID2, wobei der Maximalwert verwendet wird)
Ich antworte unter der Annahme, du wolltest eigentlich nach id2
statt nach id1
gruppieren, und du wolltest eigentlich die Ergebnisse von 12 und 87 anstatt von 6 und 87. In diesem Fall Sie möchten:
Oder (möglicherweise einfacher zu verstehen):
%Vor%Oder:
%Vor%Oder:
%Vor%Oder sogar:
%Vor% Wie Sie sehen, GroupBy
gibt es viele Überladungen:)
Oder Sie könnten einen Abfrageausdruck verwenden:
%Vor%Sie sollten sich nicht auf entweder Abfrageausdrücke oder die Version der Erweiterungsmethode beschränken - es ist wichtig, beides zu verstehen, damit Sie das verwenden können, was am besten passt.
Anscheinend möchte OP das Value
mit dem maximalen Id1
in Id2
:
Beispieldaten:
%Vor%Lösung:
%Vor%Falls es anderen hilft, hatte ich eine ähnliche Situation, außer dass mehrere Datensätze anstelle eines einzelnen Datensatzes zurückgegeben werden mussten.
ZB
%Vor%Im folgenden werden die obigen vier Datensätze als zwei Listen zweier Datensätze (Aufzählungen von Aufzählungen) zurückgegeben:
%Vor%oder
%Vor%