我对此很陌生,我在做这件事时遇到了一些麻烦:
我有一个清单timeitems
:
06:40 - 07:10
06:55 - 07:13
07:00 - 08:35
07:13 - 07:14
09:00 - 10:00
10:00 - 11:00
12:00 - 13:00
12:30 - 14:00
现在我想要所有相交的项目:
06:40 - 07:10
06:55 - 07:13
07:00 - 08:35
07:13 - 07:14
12:00 - 13:00
12:30 - 14:00
var intersects = timeitems
.Where(a => timeitems
.Any(b => Utilities.IsBetween(a.SpanRangeStartIndex, b.SpanRangeStartIndex, b.SpanRangeEndIndex)))
.AsParallel()
.ToList();
但我只得到这个,我不知道为什么:
06:55 - 07:13
07:00 - 08:35
07:13 - 07:14
12:30 - 14:00
感谢四位您的帮助(请记住,我是 .net 的新手 :-)
编辑*
好的,timeitem 只是具有两个属性的项目列表:
项目 1(SpanRangeStartIndex=06:40 SpanRangeEndIndex=07:10)
项目 2(SpanRangeStartIndex=06:55 SpanRangeEndIndex=07:13)
...
Utilities.IsBetween 检查一个值是否介于其他两个值之间(如果 3 介于 2 和 6 之间 -> true)
public static bool IsBetween(int value, int start, int end)
{
return (value > start) & (value <end);
}
抱歉我的英语不好和c#技能不好......我对此很陌生
谢谢