【发布时间】:2015-12-07 14:53:16
【问题描述】:
我不确定天气是否可能,但我必须以某种方式在我的项目中做到这一点。 我得到一个字符串格式的条件,例如:
string condition = "(param1='69' OR param1='66' OR param1='21' OR param1='93') AND (param2='FL' OR param2='WA) AND (param3!='31' AND param3!='19')";
我从 db 得到的这个条件,我的代码中有 param1、param2 和 param3 的值。现在我必须在 if 语句中检查这个条件,判断它是真还是假,并相应地显示结果。
我尝试将 param1、param2、param3 替换为实际值,比如 69、CA、22。所以字符串看起来像:
condition = "(69='69' OR 69='66' OR 69='21' OR 69='93') AND (CA='FL' OR CA='WA) AND (22!='31' AND 22!='19')";
并尝试将其转换为布尔值,但它不起作用。
请让我知道是否有任何方法,否则我需要对其进行硬编码? 还有一件事,条件可能很像,有时它会带有 2 个变量,有时会带有 4 个变量。
【问题讨论】:
-
更进一步的做法是将所有
=更改为==,除非它们是!=的一部分;然后所有OR到||和所有AND到&&。然后你“只”需要将该字符串作为表达式进行评估......也许这会有所帮助:stackoverflow.com/questions/53844/… -
另外,您可能希望将参数值括在单引号中以匹配这些值。所以
condition = condition.Replace("param1", "'" + param + "'");
标签: c# string if-statement c#-4.0 conditional-statements