我想用if条件得到一个值的结果。
我在xml文件中获得了一些价值。
现在我想要的是
如果我有变量" a"这里我通过使用数据集分配了一些值。 我有另一个变量" b"从xml文件中分配值。
例如,int a = 25; string b ="> 10"
现在我想检查条件是否有条件">"因为b变量中存在符号。我不知道如何检查这种情况可以任何人解释我如何实现这一点。
我试过这样但不行 如果(A + B)
答案 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");
}
}
类似地所有符号