c# - Is FirstOrDefault/First and OrderByDescending, quicker than LastOrDefault/Last and OrderBy? -
this question has reply here:
orderby().last() or orderbydescending().first() performance 6 answersi had linq question wondered if knew reply to.
normally if wanted find record ordered particular field, such 'latest added person' i'd write like:
mycollection.orderbydescending(x => x.addeddate).firstordefault(); recently picked work dev in team prefers write:
mycollection.orderby(x => x.addeddate).lastordefault(); so question this, ordering descending , selecting first, quicker or slowing ordering other direction , selecting last?
my thoughts first quicker it's not needing iterate on collection 'as far' when returning object, more hunch else!
if you're using linq-to-objects, first 1 marginally faster. 2 sorts each take same amount of time*, you're right in thinking firstordefault faster lastordefault. however, difference negligible compared time sort takes.
(note doing whole sort take top item far more inefficient using last on first; consider implementing morelinq's maxby function item want in o(n), rather o(n log n), time.)
if you're using linq-to-something else (sql, entities), it'll create no difference @ all.
* in general; rb points out might not case if info ordered extent.
c# performance linq
No comments:
Post a Comment