我需要爲每個時間表分配頻道。可以爲分配給客戶的信道數量同時發生許多併發事件。即,如果客戶分配了3個頻道,那麼他可以有3個併發事件。如果一個通道被分配給一個事件,那麼同一個通道不能分配給另一個同時發生的事件,但如果時間不同,同一個通道可以分配給另一個事件。如何在C#中實現以下邏輯?
頻道表
ID Name
1 Name1
2 Name2
3 Name3
事件表
ID EventName StartTime EndTime ChannelID
1 Event1 11:30AM 12PM 1
2 Event2 11:30AM 11:40AM 2
3 Event3 11:40AM 12PM 2
4 Event4 12PM 12:30PM 1 0r 2
5 Event5 11:30AM 12:30PM 3
上面是預期的輸出。
我試圖嵌套foreachloop一個渠道和其他伊芙,但無法實現和複雜性非常高。如何實現這一邏輯?
僞代碼:
for each channel
{
foreach existing events
{
if(sametime && same channel)
{
go for next channel
}
break;
}
assign current channel to new event
}
,當我嘗試創建第三個事件,則此失敗。
請發佈您迄今爲止寫的代碼。人們通常不喜歡只爲你寫代碼。事實上,這是一個工作描述,而不是一個問題。 – 2011-04-05 09:57:36
@米奇麥更新致謝! – 2011-04-05 10:03:08