我有这个结构:
class Foo {
IList<FooAttribute> Attributes { get; set; }
}
class FooAttribute {
bool IsSelected { get; set; }
string Value { get; set; }
}
我有这样的对象:
IQuerable<Foo> foos; // Database repository object .AsQuerable()
IList<FooAttribute> attrs;
我只需要过滤那些具有attrs列表所有属性的foos项目。我试过这个:
foos = foos.Where(foo =>
attrs.All(a =>
foo.Attributes.Any(at => at.Value == a)));
var filteredFoos = foos.ToList();
我认为它会起作用,但会非常慢而且......它会抛出 NotSupportedException......
顺便说一句...我使用 ASP.NET MVC 3 和 C# 4.0,所以即使是最新的解决方案也很受欢迎。
提前致谢。