只是大小写问题吗?先把text内容转成统一的小写或大写

解决方案 »

  1.   

    楼上的理解错了text 和 condition的值会变的
    我只是举了一个例子,比如"3>2",可以写成if (3>2)
    但如果text = "3>2",那么这个if 怎么写?用text表示!就像if (text)当然这是错误的,我不知道怎么表达?
      

  2.   

    if(text.ToLower() == "hello")
    {
    }
      

  3.   

    C#是编译型不是解释型的,你的问题是需要根据实际结果动态执行的,无法解决
    除非自己去解析text,如果情况不复杂应该可行
      

  4.   

    建议你传3个参数,把condition分为conditionType和conditionVal
    函数如下:
    bool fCompare(string text, string conditionType, string conditionVal)
    {
    switch (conditionType)
    {
      case "=":
              return text == conditionVal;
      case ">":
              return text.CompareTo(conditionVal) > 0;
      case "<": 
             return text.CompareTo(conditionVal) < 0;
      case ">=":
              return text.CompareTo(conditionVal) >= 0;
      case "<=": 
             return text.CompareTo(conditionVal) <= 0;
      default:
             return false;
    }
    }
      

  5.   

    如果用户的操作符号是一位字符
    text=text.ToString()+condition.ToString();
    if(Convert.ToBool(text.ToString())){
    }
      

  6.   

    if (text.ToLower() == condition.ToLower())
        MessageBox.Show("HELLO");
      

  7.   


    switch(...)
    {
    case a:
    case b:
    case c:
    default:
    }
      

  8.   

    不太清楚你问题的意思?============================
    if (/*这里的具体条件不定*/)
    只知道text的值是会变的,还有一个变量condition是用户传过来的,condition的值可能是比如:="HELLO",text的值可能是:"hello",
    这样if语句括号中的条件就是为text + condition的值即:"hello"="HELLO",
    但是如果写成if (text + condition)那是错误的,因为text + condition是字符串不是bool型,
    有什么办法可以解决这个问题?
    =============================你说的 text 和 condition 到底是什么数据类型?
    你开始的例子中是 String 型,后来的例子怎么又是 “text = "3>2"”,什么意思?
    你是要解析字符串中的 int 数据,还是做字符串比较???
      

  9.   

    动态执行语句,就跟脚本里面的eval方法一样,是吗?我记得阎宏写过一个《如何在.NET 中实现eval 函数—源代码的动态编译和执行》,你用google搜索一下
      

  10.   

    各位不好意思,我在表达一遍:
    text 和 condition都是 string型
    条件判断语句就是text + condition
    duanzj(过客) 和 tomsoncat(可以包含中文字符)的理解是对的,但是方法不怎么好
      

  11.   

    也就是说条件表达式是人为输入的,现在要转换为程序中的表达式,对吗?人为输入的是a=b
    然后转换为a==b是不?
      

  12.   

    condition条件去掉=号,直接这样:
    if(text==condition)
    {
         MessageBox.Show("HELLO");
    }
      

  13.   

    既然“text 和 condition 都是 string型”,那 if (text == condition) 不就行了,你干嘛总是说“条件判断语句就是text + condition” ,你“+”什么? 是不是 text = "hello"; condition = "=\"HELLO\"";  你要的是 condition 中的一部分是吗? 那分离一下字符串不就行了?
      

  14.   

    在.net没有提供相关的API来解决这个问题,所以只能自己处理,如 duanzj(过客) 所说,建议用一个处理函数:
    static bool Handle(string text, string condi) {
       if (condi.Length == 0) {//输入错误
       }
       string other = condi.Substring(1);
       switch (condi[0]) {
       case '=':
              return text.CompareTo(other) == 0;
       case '>':
              return text.CompareTo(other) > 0;
       case '<': 
             return text.CompareTo(other) < 0;
       case '>=':
              return text.CompareTo(other) >= 0;
       case '<=': 
             return text.CompareTo(other) <= 0;
       default:
             //出错处理   }
       return false;
    }
      

  15.   

    一个字符串里是条件字符串,如string condition = "text == \"hello!\"";
    然后用这个串里的条件做为条件是吗?那你就要自己写类分析条件字符串,就像编译系统一样
      

  16.   

    为什么不用DO WHILE??
    既然一开始不能确定IF的话
      

  17.   

    没什么要说的
    觉得xixigongzhu(夕夕公主) 的方法很好,我也不用多想了
      

  18.   

    xixigongzhu(夕夕公主) 的方法很好,我想完全满足你的要求!
      

  19.   

    handsm(无棱) 就是对的了呀