由于现在做的系统中,要读字符串条件,进行 比较。获得区间返点。存在一个字符串: 区域:0≤点≤50,返点:2|区域:50<点≤100,返点:3        区域是总返点值:意思就是如果这件物品,总返点是20点的话,那个就满足0≤点≤50,那么就应该返回,返点是2。同理,如果属于其他返点区域的话,就返回相应的返点数。返点区域字符串,可以是多个区间,只要区域是:0-100,就行。不包含,不重复。例如:区域:0≤点≤20,返点:2 | 区域:20<点≤40,返点:3 | 区域:40≤点≤80,返点:2 |  区域:80<点≤100,返点:3 现在我通过string的spit方法,能够分布取到 每个区间的关系和返点。例如:区域:0≤点≤20,返点:2下面是我取出的字符串string str= "0≤点≤20"  string ="2"  都是字符串,0≤点≤20是字符串,不是数学表达式。假设,我现在有个条件是18,理论上满足上面的条件,但是逻辑上,怎样去判断18,满足”0≤点≤20“这个条件,并且返回返点:2.其他的类推。或者希望高人,能够将:0≤点≤20 这个字符串按照理论意义拆分出来。表达成数学逻辑表达式。谢谢了,急待解决。

解决方案 »

  1.   

    0.如果 区域:0≤点≤20,返点:2 | 区域:20<点≤40,返点:3 | 区域:40≤点≤80,返点:2 | 区域:80<点≤100,返点:3,是固定的话,不需要去弄字符串转换为数学逻辑表达式这么复杂的功能,直接
    switch() case 就解决了.1.datatable.compute 一种解法,
    也可以实用js的 eval, 添加Microsoft.Vsa和Microsoft.JScript两个程序集.2.动态编程
    参考这里:http://www.cnblogs.com/yanbinboy/archive/2008/04/28/1174084.html
      

  2.   

    把0≤点≤20替换一下,“点>=0 && 点<=20”,源数据中可以就是这样,这样只替换“点”为要判断的数值就可以了
      

  3.   

    规则不应当用字符串描述,你收到的数据是什么格式?点是什么?字符串么?
    string 点 = "18";
    int n = int.Parse(点);
    n = (int)(n / 50) + 2;
    n就是返回的点数