我做了一个 linq 进行测试,没什么特别的:
public IEnumerable<Flight> GetActiveFlights(IEnumerable<Flight> flights)
{
return from flight in flights
from segments in flight.Segments
where segments.DepartureDate > DateTime.Now
select new Flight
{
Segments = flight.Segments
};
}
它返回多行,每一行用于飞行中的每个段 =/
例子:
航班列表有:Segment 1、Segment2
Segment1 列表有:出发、到达 Segment2 列表有:出发、到达
代替:
出发:2.9.2013 4:50:51,到达:2.9.2013 7:50:51;
出发:2.9.2013 5:50:51,到达:2.9.2013 7:50:51;出发:2.9.2013 8:50:51,到达:2.9.2013 10:50:51;
我得到:
出发:2.9.2013 4:50:51,到达:2.9.2013 6:50:51;
出发:2.9.2013 5:50:51,到达:2.9.2013 7:50:51;出发:2.9.2013 8:50:51,到达:2.9.2013 10:50:51;
出发:2.9.2013 5:50:51,到达:2.9.2013 7:50:51;出发:2.9.2013 8:50:51,到达:2.9.2013 10:50:51;
这意味着,如果飞行中的航段超过 1,我会获得双倍记录。任何意见,将不胜感激。