这里是我的问题。我有数据,通过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