私はこの構造を持っています:
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 を使っているので、最新のソリューションでも大歓迎です。
前もって感謝します。