Получить ближайший день в будущем в выражении LINQ - PullRequest
0 голосов
/ 17 июня 2020

У меня есть список дат в формате гггг / мм / дд:

2020/06/10
2020/06/18
2020/07/17

и заданная дата

2020/06/10

Я хочу найти ближайший день в будущем от заданной даты в LINQ ( ожидаемый результат: 18.06.2020).

1 Ответ

3 голосов
/ 17 июня 2020

Если вы хотите найти ближайшую дату в будущем, вы можете отфильтровать все более ранние даты (включая ту же дату), упорядочить их, а затем взять первое значение:

List<DateTime> allDates = new List<System.DateTime>()
{
    new DateTime(2020, 06, 10),
    new DateTime(2020, 06, 18),
    new DateTime(2020, 07, 17),
};

DateTime givenDate = new DateTime(2020, 06, 10);

DateTime closestDateInFuture = allDates.Where(x => x > givenDate).OrderBy(x=> x).First();
Console.WriteLine(closestDateInFuture);

Вывод:

18.06.2020 00:00: 00

Еще одно предложение @ Johnathan Barclay - использовать метод Min, который дает тот же результат :

DateTime closestDateInFuture = allDates.Where(x => x > givenDate).Min()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...