Сопоставление записи списка с учетов времени
var list = new List<Logs>();
foreach (var key in listDetect.ToList())
{
foreach (var item in key.Value)
{
AIS result = AISInfo[key.Key].ToList().Find(t =>t.DateCreate.TimeOfDay == item.item.LastWriteTime.TimeOfDay);
if (result != null)
{
list.Add(new Logs()
{ ....}
}
}}
У меня есть два списка, у каждого из списков в модели есть свойство в котором записано время изменения файла. Я пытаюсь для каждого элемента списка listDetect найти элемент списка AISInfo. Но в даном случае у меня идет строгое сопоставления по времени, а мне надо что бы для записи в 12:10:05 находились записи за промежуток от 12:10:05 +- 30 секунд.
Ответы (1 шт):
Автор решения: RusArt
→ Ссылка
Воспользуйтесь операциями с TimeSpan, там достаточно богатый api. Например, сравнение можно написать как-то так:
(a.TimeOfDay - b.TimeOfDay).Duration() <= TimeSpan.FromSeconds(30)
Более того, вам даже не нужен TimeOfDay, правильнее вычесть одну дату из другой, чтобы учесть смену дней и разные даты.
(a - b).Duration() <= TimeSpan.FromSeconds(30)