我是新来这个项目,我有一个小麻烦要做到这一点:LINQ的:获取相交
我有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
感谢Four的帮助(请记住,我是新来的.NET :-)
编辑*
OK,一个timeitem IST只是一个具有两个属性的项目列表:
项目1(SpanRangeStartIndex = 06:40 SpanRangeEndIndex = 07:10)
项目2(SpanRangeStartIndex = 06:55 SpanRangeEndIndex = 07:13)
...
如果Utilities.IsBetween检查的值是其他两个值之间(如果3是2到6 - >真)
public static bool IsBetween(int value, int start, int end)
{
return (value > start) & (value <end);
}
对不起,我英文不好和坏的C#-skill ......我很新这个
感谢
什么是'timeItems',什么是'Utilities.IsBetween'的代码? – Jamiec
你稍微超载了'intersect'这个词。你想知道一个列表中的极限范围与另一个列表中的范围重叠。首先,每个清单都是一套吗?其次,你如何定义一个范围的平等? – Jodrell