如何用字符串和整数检查if条件

时间:2017-09-08 11:59:29

标签: c# asp.net data-conversion

我想用if条件得到一个值的结果。

我在xml文件中获得了一些价值。

现在我想要的是

如果我有变量" a"这里我通过使用数据集分配了一些值。 我有另一个变量" b"从xml文件中分配值。

例如,

int a = 25; string b ="> 10"

现在我想检查条件是否有条件">"因为b变量中存在符号。我不知道如何检查这种情况可以任何人解释我如何实现这一点。

我试过这样但不行 如果(A + B)

4 个答案:

答案 0 :(得分:1)

您可以使用某些功能删除非数字字符:

public int Parse(string x)
{
  x = Regex.Replace(x, "[^0-9.]", "");
  int result = 0;
  int.TryParse(x , out result);
  return result; 
}

如果它总是一个带符号的数字,那么:

symbol = b[0];
int bval = int.Parse(b.Substring(1))

考虑到您的评论,您可以这样做:

if((symbol=='>'&&a>b)||
   (symbol=='='&&a==b)||
   (symbol=='<'&&a<b)
  ){
       //do your magic here
   }

当然,你可能只需要一个&lt; =&gt;或者你可能需要为每个条件分别设置条件,满足你的需求,但我只想提出这个想法。

答案 1 :(得分:1)

您可以使用DataTable.Compute - “技巧”来评估这些表达式:

int a = 25;
string b = ">10";
bool isTrue = (bool)new DataTable().Compute($"{a}{b}", null);  // true

您可以在DataColumn.Expression评论中阅读支持的内容。

  

如果条件是1!= 10,如何在此代码中使用不相等。这个   条件不起作用我该怎么做。

由于documentation告诉您语法无效,您必须使用&lt;&gt; (看看运营商)。因此,一种简单的方法是使用&lt;&gt;首先或替换它们:

b = b.Replace("!=", "<>");

答案 2 :(得分:0)

b中的第一个单独符号:

string symbol = b[0].ToString();
string numberString = b.SubString(1);
int number = int.Parse(numberString);

现在使用开关来获取符号操作并进行比较:

bool result = false;
switch (symbol)
{
    case ">":
        if (a > number)
        {
            result = true;
        }
        break;
}

编辑:更改了symbol声明以避免错误:&#34;无法将char类型隐式转换为字符串&#34;

答案 3 :(得分:0)

我试过这个

if (b.Contains(">")) {
                                b = b.Replace(">", "");
                                if (a >Convert.ToInt32(b))
                                {
                                    Console.WriteLine("value is less");
                                }
                                else
                                {
                                    Console.WriteLine("value is Greater");
                                }
                            }

类似地所有符号