c # convierte la expresión de cadena a una expresión booleana

c# expression-trees parsing

Pregunta

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

Por ejemplo, me sale la siguiente cadena:

var b = "32 < 45 && 32 > 20"

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

Respuesta aceptada

Usaría Irony , el kit de lenguaje .NET. Puedes construir una gramática simple con Irony y luego analizar la cadena en un comando ejecutable. Hay un ejemplo decente de una gramática arthmética en este tutorial y en la muestra de gramática de expresión , es una solicitud bastante común;)

Definitivamente, sugiero usar un compilador adecuado en lugar de Regex o un rollo de su propio enfoque: será mucho más extensible si alguna vez desea agregar más reglas.


Respuesta popular

Eche un vistazo a Huida (Evaluador de Expresión Rápido y Ligero) en CodePlex.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow