Ну, .Take(size)
возвращает IEnumerable<T>
(не один T
) размера не более size
. Таким образом, вы можете указать либо
var array = testFiles
.OrderByDescending(item => item.DateRowAdded)
.Take(1)
.ToArray();
return array.Length > 0
? array[0]
: SomeCustomDefaultValue; // when testFiles is empty
, либо
return testFiles
.OrderByDescending(item => item.DateRowAdded)
.FirstOrDefault(); // when testFiles is empty
Обратите внимание, что 2-я версия, являющаяся краткой, не позволяет предоставлять (в общем случае) пользовательское значение по умолчанию.
Наконец, если testFiles
(очень) long и, следовательно, сортировка (OrderByDescending
) медленная и занимает много памяти, вы можете попробовать Aggregate
:
return testFiles
.Aggregate((bestSoFar, current) => bestSoFar.DateRowAdded > current.DateRowAdded
? bestSoFar
: current);