Проверка, существует ли объект, затем установка его на основе правил

#c# #linq

#c# #linq

Вопрос:

У меня есть 2 бизнес-объекта, trip и driver. Каждый содержит идентификатор драйвера и дату драйвера (ММ / ДД / ГГГГ)

У Trip может быть несколько одинаковых драйверов.в нем есть driverid. Мне нужно получить ближайший экземпляр driver.driverid в trips к драйверу, в котором я сейчас нахожусь.

Итак, например, у меня пока есть следующее:

 var lookup = driver.driverid; 
  

Это текущий драйвер, на который я смотрю (используя foreach для просмотра объекта drivers 1 на 1)

Теперь мне нужно сказать, получить самый последний объект trip, который имеет тот же идентификатор драйвера и ближайшую, но не равную прошлую дату. Если такой объект не существует, выйдите из метода.

Спасибо

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

1. Я не был уверен, как я буду это делать, поскольку у меня еще не было никакого опыта с чем-либо, использующим order by в LINQ.

Ответ №1:

Используя LINQ, вы могли бы сделать что-то вроде этого (при условии, что ваша структура объекта);

  var selectedTrip = trips.Where(x => x.DriverId == desiredDriverId amp;amp; x.TripDate > desiredDate).OrderBy(x => x.TripDate).FirstOrDefault();

 if(selectedTrip == null)
    return;

 // selectedTrip is your desired object
  

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

1. Будет ли это x.TripDate > Желаемая дата или > должно быть < здесь, потому что я действительно хочу, чтобы x.TripDate был меньше текущей даты драйвера?

2. Не зная структуру вашего объекта и дату, которую вы на самом деле хотите, вы можете просто поиграть с этим.