Я пытаюсь найти пустой временной интервал при поиске нескольких клиентов по номеру слота.Если время доступно для этого клиента, оно должно вернуть первого найденного клиента.
Пример данных (У каждого клиента есть уникальный номер слота)
customer 1: slotnumber 0, time 0
customer 1: slotnumber 0, time 1
customer 1: slotnumber 0, time 2
customer 1: slotnumber 0, time 4
customer 2: slotnumber 1, time 0
customer 2: slotnumber 1, time 1
У меня есть следующий класс:
public class CustomerSlot
{
public int customerid { get; set; }
public int slotnumber { get; set; }
public int time { get; set; }
}
Затем у меня есть список слотов клиентов:
List<CustomerSlot> lstCustomerSlots = new List<CustomerSlot>();
Теперь предположим, что я хочу найти первый слот со временем 3, используя вышеуказанные данные.
Здесь мне нужна помощь.У меня не совсем правильный синтаксис для группировки по клиенту и возвращения клиента, у которого есть этот доступный интервал времени:
CustomerSlot timeSpaceFound = lstCustomerSlots
.Where(t => t.time != 3) // Search for time 3
.GroupBy(c => c.customerid) // Search an entire customer
.OrderBy(c => c.customerid) // Start searching by the order of first customerid
.FirstOrDefault();
Любая помощь в настройке лямбда выше будет принята.Не нашли ни одного примера поиска решения онлайн.Спасибо.