Как с помощью linq вернуть время в промежутке?

Пользователь

от roxanne.hauck , в категории: Другие , 2 месяца назад

Как с помощью linq вернуть время в промежутке?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от vicenta_kertzmann , 2 месяца назад

@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