c # convert expresión de cadena a una expresión booleana

¿Es posible convertir una expresión de cadena en una condición booleana?

Por ejemplo, obtengo la siguiente cadena:

var b = "32  20" 

Me gustaría crear una expresión bool partir de esto e invocarlo. La representación de cadena también es flexible (para hacerlo más divertido), por lo que permite ||, &&, () .

Usaría Irony , el kit de idioma .NET. Podrías construir una gramática simple con Irony y luego analizar la cadena en un comando ejecutable. Hay un buen ejemplo de una gramática arthmética en este tutorial y en Expression Grammar Sample , es una solicitud bastante común;)

Definitivamente sugiero usar un comstackdor adecuado en lugar de Regex o un enfoque propio: será mucho más extensible si alguna vez quieres agregar más reglas.

Eche un vistazo a Flee (Evaluador rápido de expresiones livianas) en CodePlex.

Si sigue todas las reglas de expresión de C #, compílelo como código dynamic según http://www.west-wind.com/presentations/dynamiccode/dynamiccode.htm

Si se trata de expresiones matemáticas relativamente simples, una implementación directa del algoritmo de yarda de derivación debería ser la solución.

Creo que crear un intérprete para esta cadena no llevaría mucho tiempo.

http://www.industriallogic.com/xp/refactoring/implicitLanguageWithInterpreter.html

Aquí puede encontrar información sobre el diseño que se puede usar para crearlo.

Puede echar un vistazo a JINT (intérprete de Javascript para .NET) http://jint.codeplex.com/