Ich habe ein Modell in meiner Web-Anwendung wie folgt aus:Looping durch Model Collection und filtern, um eine Abfrage in asp.net MVC
class MyClass
{
int ID;
List<AnotherClass> foo {get; set;}
}
class AnotherClass
{
int ID;
string bar;
}
Ich habe auch eine Liste der Filter-Strings vom Benutzer gegeben.
List<string> filter = new List<string> { "foo", "bar" } //as example
Was ich will, ist MyClass
durch die gegebenen Strings wie diese zu filtern:
var result = context.MyClass.Include(mc => mc.foo);
result = result.Where(x => filter.Any(f => f == x.foo.Select(d => d.bar)));
Das Problem ist: Select()
eine Liste von Strings zurück, und ich kann nicht einen String mit einer Liste der Vergleichs Saiten.
Jeder eine Idee, wie Sie dieses Problem beheben können?
Verwenden Sie FirstOrDefault oder SingleORDefault es wird Ihnen nur ein Ergebnis. –