Verwenden Sie LINQ, um Objekte mit dem kleinsten oder maximalen Attributwert
Unter der Annahme, dass Sie eine Liste haben, die das Personobjekt enthält, haben diese Objekte das Datum des Attributs, das leer sein kann. Möglicherweise müssen Sie das früheste Geburtsdatum bestimmen.
Eine Methode besteht darin, den Mindestwert der Datum der Eigenschaft mit der min -Methode zu ermitteln. Dies gibt jedoch nur den Mindestdatumwert zurück, nicht das tatsächliche Personenobjekt.
Um das entsprechende Objekt zu erhalten, können Sie die aggregierte Methode verwenden:
Die
<code class="language-csharp">var firstBorn = People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) < (curMin.DateOfBirth ?? DateTime.MaxValue)) ? x : curMin);</code>
In diesem Beispiel wird der anfängliche Akkumulatorwert auf null gesetzt. Die an die aggregierte Methode übergebene Funktion, um zu überprüfen, ob der aktuelle Akkumulatorwert null ist, oder die DateFbirth -Eigenschaft des aktuellen Elements (mit DateTime.MaxValue den Nullwert ersetzen) früher als die Datum des aktuellen Akkumulators DateFbirth -Eigenschaft. Wenn es wahr ist, gibt die Funktion das aktuelle Element als neuer Cumulator zurück.
Das Ergebnis von
Aggregat ist das früheste Personenobjekt bei der Geburt. Diese prägnantere Methode muss keine zweite Abfrage ausführen, um die entsprechenden Objekte abzurufen.Das obige ist der detaillierte Inhalt vonWie finde ich die Person mit dem frühesten Geburtsdatum mit LINQ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!