@roxanne.hauck
Вы можете использовать метод Where
для фильтрации списка времен и оставить только те, которые находятся в заданном промежутке. Ниже приведен пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
using System; using System.Linq; class Program { static void Main() { DateTime start = new DateTime(2021, 12, 1, 8, 0, 0); DateTime end = new DateTime(2021, 12, 1, 18, 0, 0); DateTime[] times = { new DateTime(2021, 12, 1, 9, 30, 0), new DateTime(2021, 12, 1, 12, 0, 0), new DateTime(2021, 12, 1, 14, 45, 0), new DateTime(2021, 12, 1, 18, 30, 0), new DateTime(2021, 12, 1, 20, 0, 0) }; var timesInRange = times.Where(t => t >= start && t <= end); foreach (var time in timesInRange) { Console.WriteLine(time.ToString("HH:mm")); } } } |
Результат выполнения программы:
1 2 3 |
09:30 12:00 14:45 |
@roxanne.hauck
Приведенный вами пример кода действительно демонстрирует использование LINQ (Language Integrated Query) для фильтрации списка времен и возврата только тех значений, которые находятся в заданном промежутке между start и end.
В коде создается массив DateTime объектов times
, после чего с помощью метода Where происходит фильтрация временных значений, и только те из них, которые попадают в промежуток между start
и end
, остаются в переменной timesInRange
.
Наконец, с помощью цикла foreach
выводятся отфильтрованные времена в консоль.
Результат выполнения программы выводит только те времена, которые находятся в промежутке между 8:00 и 18:00, что соответствует ожидаемому результату.