Получить минимальное время даты из Linq

#linq

#linq

Вопрос:

Как я могу преобразовать этот запрос linq в одну строку?

 var closets = (from v in options
               select v.ExceriseDate).Min();

var option = options.Where(v => v.ExceriseDate == closets).Single();

return option;
  

Ответ №1:

Вот так:

 options.OrderBy(v => v.ExceriseDate).First();
  

Я также добавлю, что вы не хотите использовать Single() , если не можете гарантировать, что оно будет уникальным. Это вызовет исключение, если существует более одного. Это произошло бы, если бы два ваших объекта совместно использовали одно и то же ExceriseDate . Наконец, если вы предпочитаете синтаксис запроса для Linq методу expression:

 var option = (from v in options
              orderby v.ExceriseDate
              select v).First();
  

Комментарии:

1. Я хочу вернуть объект option, а не DateTime