Kombinieren von Func Ausdrücke

c# expression-trees

Frage

Mögliche Duplikate:
Kombination zweier Ausdrücke (Ausdruck <Func <T, bool >>)

Ich habe eine Methode, die einen einzelnen Expression<Func<bool>> -Parameter verwendet

void MethodOne(Expression<Func<bool>> expression)

Ich habe mehrere Instanzen von Expression<Func<bool>> . Wie kombiniere ich diese Ausdrücke dynamisch zu einem einzelnen Expression<Func<bool>> mit Expression.OrElse (dh Aufbau eines Ausdrucksbaums)?

Zum Beispiel, wenn ich zwei Ausdrücke wie

() => objectA.PropertyOneIsSet

und

() => objectB.PropertyTwoIsSet

Ich möchte, dass das Endergebnis lautet:

() => objectA.PropertyOneIsSet || objectB.PropertyTwoIsSet

so kann ich dies meiner Methode oben übergeben.

Akzeptierte Antwort

Sie können ExpressionVisitor zum Kombinieren von Abfragen erstellen. Überprüfen Sie diesen msdn Blog für weitere Informationen: Kombinieren von Prädikaten (Antwort 3). Er spricht über EF, aber Sie können es in Ihrem Fall verwenden


Beliebte Antwort

Sie könnten Ausdrücke verwenden.Any (x => x.CallMethod), um dieses Ziel zu erreichen.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow