Heim >Backend-Entwicklung >C++ >Wie kann Linq das Objekt effizient mit dem minimalen oder maximalen Eigenschaftswert finden?
In Datenverarbeitungsszenarien ist häufig ein bestimmtes Objekt mit einem minimalen oder maximalen Wert mit einem bestimmten Attribut erforderlich. LINQ bietet einfache Methoden, um dies zu erreichen.
Lassen Sie uns Ihr Beispiel überprüfen, in dem das Personobjekt das Datum des Attributs von Birth hat, das leer sein kann. Um die frühesten Personen am Geburtsdatum zu finden, haben Sie zuerst die folgenden Methoden ausprobiert:
Aber dies wird nur das kleinste Datum des Wertes abrufen. Um das entsprechende Personenobjekt abzurufen, ist noch eine zusätzliche Abfrage erforderlich.
<code>var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));</code>
einfache Lösung: Verwenden Sie das Aggregat
lINQ bietet eine alternative Methode zur Verwendung der Aggregatmethode:
Dieses Codefragment kann verwendet werden, um den kleinsten Datum des Wertes und das entsprechende Personenobjekt in einer einzelnen Abfrage abzurufen. Es vergleicht iterativ die Datum der Eigenschaft jedes Elements mit dem aktuellen Mindestwert und gibt Elemente mit dem Mindestwert zurück.
<code>var firstBorn = People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) < (curMin.DateOfBirth ?? DateTime.MaxValue)) ? x : curMin);</code>Durch die Verwendung von Aggregat können Sie die Anforderungen für die zweite Abfrage beseitigen und den Code erheblich vereinfachen. Diese Methode ist besonders nützlich, wenn Sie extreme Werte finden müssen, die möglicherweise ein kurzes Wertmordungsattribut haben.
Das obige ist der detaillierte Inhalt vonWie kann Linq das Objekt effizient mit dem minimalen oder maximalen Eigenschaftswert finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!