Wie konvertiert man Func? zu Ausdruck >

c# c#-4.0 expression-trees lambda linq

Frage

Ich habe eine Func wie folgt:

 Func<MyClass, bool> func = x=>Id == 5;

Wie kann ich es konvertieren zu:

 Expression<Func<MyClass, bool>>

Akzeptierte Antwort

Versuche dies:

Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);

Beliebte Antwort

Du kannst einfach schreiben:

Expression<Func<MyClass,bool>> expr = x=>Id == 5;

Dadurch wird expr als Ausdrucksbaum für Id == 5 .

Wenn Sie tun:

Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);

Dann wird expr als Ausdrucksbaum für einen Aufruf von func , nicht als Ausdrucksbaum für den Körper von func .



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum