的ObjectQuery返回对象,其中子对象包含了一组值

问题描述:

我有两个班,具体如下:的ObjectQuery返回对象,其中子对象包含了一组值

public class Route 
{ 
    public ObservableCollection<Flight> Flights = new ObservableCollection<Flight>(); 
} 

public class Flight 
{ 
    string airlineName; 
} 

我想返回所有路线有由一个运营的航班列表指定航空公司

我想这样做,但Routes.SelectMany(x => x.Flights).Where(x => x.Airline == airline);返回所有飞行物体 - 我需要的路由对象...

任何人都可以解释我是如何能做到这一点使用的ObjectQuery?提前致谢!

+0

无论你的类处理航班,所以我没有看到任何地方你得到的路由信息​​你在哪里指定路线 – MethodMan

Routes.Where(x =>x.Flights.Any(p=> p.Airline == airline)) 
+0

谢谢,该工作并返回预期的rresult,但是我收到以下错误:'无法投射对象的类型'WhereEnumerableIterator'1 [Route]'类型'System.Collections.ObjectModel.ObservableCollection'1 [Route]'。 –

+0

如果这项工作如预期的那样,发生此错误时? –

+0

好吧,如果我做了'var result =',那么它就可以工作,并且如果我调试'result'变量包含一组路由,就像预期的那样。但我需要这个函数返回一个'ObservableCollection ' - 但铸造失败,错误提及 –

这听起来像你想:

Routes.Where(route => route.Flights.Any(flight => flight.Airline == airline)) 
+0

感谢您的回答,不幸的是RedHat的手指更快,所以我会接受他的立足点。 –

+0

@GavinCoates:根据时间戳,我实际上在RedHat前31秒发布了答案,但我不介意:) –