过滤一个属于对象的属性(列表)
问题描述:
现在我想返回一个序列列表,它的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)。
答
根据你想要做什么,尽量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...
}
请仔细阅读http://tinyurl.com/so提示让你的问题更清晰。 – 2010-11-29 11:59:06
我认为你需要在你的问题上更加清楚,不清楚你在问什么。 – 2010-11-29 11:59:44