string类型如何转换成bool类型?

如:string str="1<2";如何转换成bool类型的true
也许确实不能转换,但有没有等效的方法呢?即有没有这样一种方法,我传入string类型的参数,然后那个方法放回bool类型的值,例如:传入参数“1<2”,返回true。求高人指点...问题补充:string类型的参数其实就是一个逻辑表达式,最复杂的情况就是[ a>b || (c>d&&e<f) ] || g>h

using System.Data;
public string StringToBoll2(string Expression)
{
DataTable dt = new DataTable();
return (dt.Compute(Expression, "").ToString());
}
StringToBoll2可以得到表达式Expression的结果(“true”或“false”的字符串),
再转换一下就可以了Convert.ToBoolean(yourString);追问

传入参数(12||1<2)时会报错

追答

需要添加引用:Microsoft.JScript 和Microsoft.Vsa
public object EvalExpress(string sExpression)
{
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
return Microsoft.JScript.Eval.JScriptEvaluate(sExpression, ve);
}
测试代码:

object objResult = EvalExpress("(12||1<2)");
Convert.ToBoolean(objResult.ToString());
测试通过

测试通过

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-09
String s="888";
Boolean b =new Boolean(s);
b.parseBoolean(s);
java.lang.Boolean.parseBoolean(String s) 解析字符串参数作为一个布尔值。返回的布尔型参数的值为true,如果字符串参数不为null,是相等的,忽略大小写字符串“true”。
第2个回答  2014-02-13
调用下面这个方法,传入字符串即可:
bool GetBool(string s)
{
return Convert.ToBoolean(new DataTable().Compute(s, ""));
}
希望对你有帮助,还有疑问请追问或是Hi追问

s= (12||1<2)的时候就报错了

追答

这个不是一个表达式好吧,你举例时没有说有这种情况,还有哪种,一起说了吧,这种可以拆分。关键是有没有这么做的必要?目的是什么?可不可以用其它的方式来解决

追问

表达式最复杂的情况就是:[ a>b || (c>d&&eh,这个表达式由用户设置,保持在数据库中nvarchar(max)类型,包含中括号、括号、大于号、小于号、||、&&,其中英文字母是double类型的变量。这么做是有必要的,没有其他办法只能这样做,你能帮助我吗

追答

这个.....真不是一个简单的工作!看看这个对你有帮助没有:
http://www.codeproject.com/Articles/246374/A-Calculation-Engine-for-NET

本回答被网友采纳
第3个回答  推荐于2018-02-01
楼主最好调用现成的控件和类库。
个人思路:
分割字符串 通过()来分割字符()一定是最接近的2个
然后通过&& 和 ||来分割
然后在通过>,<来分割
比较两个相邻的double元素 小括号的优先级最高。
能写出这么复杂的算法的肯定是精英人才本回答被网友采纳
第4个回答  2014-02-13
STRING STR已经定义了str是字符型变量,不会得到BOOL类型的结果
楼下的加入一个转换也是一种方法
相似回答