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