Comment convertir Func à l'expression >

c# c#-4.0 expression-trees lambda linq

Question

J'ai un Func comme ça:

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

Comment je peux le convertir en:

 Expression<Func<MyClass, bool>>

Réponse acceptée

Essaye ça:

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

Réponse populaire

Vous pouvez simplement écrire:

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

Cela va définir expr comme un arbre d’expression pour Id == 5 .

Si tu fais:

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

Ensuite, ceci définira expr pour qu’il soit un arbre d’expression pour un appel à func , pas un arbre d’expression pour le corps de func .



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow