2010-11-29 85 views
1

现在我想返回一个序列列表,它的prop1.x(p => p.a == 1)。 我可以用Select子句写这个,但我的对象有很多属性。过滤一个属于对象的属性(列表<Foo>)

像这样(但在真正的语法):

ctx.MyObject.Where(p=>p.state==1 && prop1.where(p=>p.a==1)); 

编辑:obj1这个道具(int一,List<Foo>为prop1)和Foo有(int B,int C)。

+0

请仔细阅读http://tinyurl.com/so提示让你的问题更清晰。 – 2010-11-29 11:59:06

+0

我认为你需要在你的问题上更加清楚,不清楚你在问什么。 – 2010-11-29 11:59:44

回答

3

根据你想要做什么,尽量Any而不是Where

ctx.MyObject.Where(p=>p.state==1 && prop1.Any(p2 => p2.a == 1)) 

或者像你提到你可以使用Select

ctx.MyObject 
    .Where(p => p.state == 1) 
    .Select(p => new 
     { 
      state = p.state, 
      prop1 = p.prop1.Where(p2 => p2.a == 1), 
      // other fields... 
     } 
相关问题