我做測試用LINQ,沒有什麼特別的: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
};
}
並返回多排,每排在飛行=/
實施例的各段:
航班列表有: 段1,段2
段1列表有:出發,到達 段2列表有:出發,到達
代替:
出發:2013年9月2日四點50分51秒,到達:2013年2月9日7點50分51秒;
出發:2013年2月9日5點50分51秒,到達:2013年2月9日7點50分五十一秒;出發日期:2.9.2013 8:50:51,抵達日期:2.9.2013 10:50:51;
我得到:
出發日期:2013年9月2日四時50分51秒,到達:2013年9月2日六時50分51秒;
出發:2013年2月9日5點50分51秒,到達:2013年2月9日7點50分五十一秒;出發日期:2.9.2013 8:50:51,抵達日期:2.9.2013 10:50:51;
出發:2013年2月9日5點50分51秒,到達:2013年2月9日7點50分五十一秒;出發:2013年2月9日8:50:51,到達:2013年2月9日10點50分51秒;
這意味着,我得到雙倍的記錄,如果有超過1段飛行。 任何意見,將不勝感激。
這些查詢都涉及迭代'flights' N次,這可能是一個問題。最後一個查詢也迭代'futureSegments'多次,這意味着多次進行過濾。根據'flights'的底層實現以及具體的數據,這可能會很好,但它可能非常高效,甚至可能無法正常工作。 – Servy
@Servy:將添加'ToList()'到第二個... –
再次很好的解釋。你真的努力爲人們解釋理解。 關於未來的細分市場,這是什麼意思?像段2,段3,沒有段1? –