這裏是我的問題。我有數據,通過dateStart排序列表:通緝:有關日期的某些規則的數據列表
index dateStart dateEnd value
[0] 2009-11-01 04:20 2009-11-01 05:40 5
[1] 2009-11-01 06:30 2009-11-01 08:42 10
[2] 2009-11-01 07:43 2009-11-01 16:12 0
[3] 2009-11-01 10:43 2009-11-01 14:34 -12
[4] 2009-11-01 12:34 2009-11-01 12:42 3
,我想會是從該列表中,其中dateStart和dateEnd從2名不同的項目絕不會發生衝突的一個子集的最終輸出。
在當前的例子中,我會從[0]開始並保留它。
對於[1],自dateStart> [0] .dateEnd以來,我也會保留它。
對於[2],自從dateStart < = [1] .dateEnd,我會放棄它。
對於[3],因爲它的dateStart> [2] .dateEnd,我會保留它。
對於[4],自從dateStart < = [3] .dateEnd,我會放棄它。
等等。
如果可能,我想使用LINQ(lamda首選)。
否則,我猜一個標準的循環會做的伎倆。
獲得我最終輸出的另一個有趣的方法是保留所有數據,但爲每個項目添加一個標誌(bValid),這表示數據是否被採用。
謝謝! p.s.遺憾的格式,我盡力(先到這裏後)
你好,感謝您的回覆! 你發現正確,但[3]應該保留,因爲我忘記解釋我原來的問題中的另一個概念... 事實上,我[3]因爲它的dateStart> [我保留的最後一個項目] .dateEnd,這是[1]和它的日期結尾是08:42 – ibiza 2009-11-20 16:40:03
因此它不總是檢查項目之前(索引 - 1),而是在我保留的最後一個項目... – ibiza 2009-11-20 16:42:05
@ibiza,請看我最新的答案。 – 2009-11-20 16:55:36