C# 如何轻松验证输入字符串是否为有效的lambda表达式?

C# 如何轻松验证输入字符串是否为有效的lambda表达式?,c#,.net,linq,lambda,C#,.net,Linq,Lambda,例如: Validate("items.Select(item => item.ToLower())") 将返回True,而 Validate("var n=5;") 将返回False 上下文是我想创建一个应用程序,允许用户通过lambda表达式操作数据。如果用户输入有效的lambda表达式,程序将执行它。否则,它会失败。我建议保持它的简单性,并尝试执行它。 如果无效,几毫秒后仍将失败 它还处理语法上有效但因不同原因失败的表达式 如果您选择采用这种方法,那么只需使用动态Linq库就可以

例如:

Validate("items.Select(item => item.ToLower())")
将返回True,而

Validate("var n=5;")
将返回False


上下文是我想创建一个应用程序,允许用户通过lambda表达式操作数据。如果用户输入有效的lambda表达式,程序将执行它。否则,它会失败。

我建议保持它的简单性,并尝试执行它。
如果无效,几毫秒后仍将失败

它还处理语法上有效但因不同原因失败的表达式


如果您选择采用这种方法,那么只需使用动态Linq库就可以了。

上下文是什么?这将如何使用?为什么它需要是LINQ表达式的字符串版本而不是LINQ表达式?只是试图达到目的,以便更好地理解解决方案。仅供参考,这不是Linq表达式,而是Lamba表达式。如果没有一些真实的上下文,这个问题是无法解决的@zer0ne的不可能重复的。这些是Linq上下文中的Lambda表达式。但是,它们决不限于LINQ查询。几毫秒后,LINQValidatewhiletrue{var s=\good luck\;};如果他必须和邪恶的用户打交道,他可以在一个单独的线程上执行它,如果需要太长时间,他可以杀死它。LINQValidateSystem.Diagnostics.Process.Start\cmd格式c:\;;