Kiedy chcę pobrać obiekt o najwyższej wartości nieruchomości DateTime
z IEnumerable
, mogę wykonać następujące czynności:Pierwsze obiekt o max aktualna wartość czasu w jednym z nim jest właściwości
var maxDate = myEnumerable.Max(x => x.TheDateTimeProperty);
var wantedObject = myEnumerable.FirstOrDefault(x => x.TheDateTimeProperty == maxDate);
Czy to możliwe bez wcześniejszego uzyskania maxDate
? Na przykład takich jak to:
var wantedObject = myEnumerable.GetByMaxDate(x => x.TheDateTimeProperty);
wiem, że mógłbym napisać metodę rozszerzenia GetByMaxDate
, ale chcę wiedzieć, czy istnieje już sposób dostarczone przez LINQ.
Aby wyjaśnić: Nie szukam innych możliwości napisania tego. Byłem tylko zainteresowany, czy istnieje metoda, która to robi. (Mniej kodu, możliwe najlepszą wydajność udało metodą)
Możesz użyć [morelinq] (https://code.google.com/p/morelinq /) autorstwa Jona Skeeta i jego metody [MaxBy] (https://code.google.com/p/morelinq/source/browse/MoreLinq/MaxBy.cs?r=2da75c30d5bda7959e5113b702b4bb204a0e4a2c) – Habib
Po drugie, pojęcie że powinieneś użyć metody MaxBy z morelinq. Powinien być w każdym przyborniku programisty C#! –
Więc nie ma metody wbudowanej przez linq, dziękuję za informację o tym! –