相互减去( - )2个文本标签以获得结果

时间:2011-09-26 02:47:43

标签: c# .net text

好吧,我已经尝试过ToInt,ToString,而且我没有选择。 我正试图从彼此中减去2个标签文本。 (那些包含来自RSS的数字)

我现在所拥有的:

        lblOldID.Text = nodeChannel["oldid"].InnerText;
        lblNewID.Text = nodeChannel["newid"].InnerText;

所以让我们说oldid包含“500”和newid“530”。

但由于某种原因,我无法减去( - )它们。 我想要的是什么:

      lblResultID.Text = lblOldID.Text - lblNewID.Text;

示例:结果= 530 - 500

那怎么可能呢?

3 个答案:

答案 0 :(得分:3)

如果你想要标签文字,字面意思是530 - 500,就像这样连接字符串:

lblResultID.Text = lblOldID.Text + " - " + lblNewID.Text;

如果您希望标签文本是减去标签中表示的数字的结果,请先将它们转换为整数:

int old = Int32.Parse(lblOldID.Text);
int new = Int32.Parse(lblNewID.Text);
lblResultID.Text = (old - new).ToString();

(如果有可能两个值都没有干净地转换为整数,那么你需要在那里进行一些错误检查)

答案 1 :(得分:3)

您需要将文本转换为整数。

//These are the ints we are going to perform the calculation on
Int32 oldID = 0;
Int32 newID = 0;

//TryParse returns a bool if the string was converted to an int successfully    
bool first = Int32.TryParse(lblOldID.Text, out oldID);
bool second = Int32.TryParse(lblNewID.Text, out newID);

//Check both were converted successfully and perform the calculation
if(first == true && second == true)
{
   lblResultID.Text = (oldID - newID).ToString();
}
else
{
   lblResultID.Text = "Could not convert to integers";
}
如果标签中的数据无法转换为整数,

TryParse可防止抛出异常。相反,如果成功解析了数字,它会返回false(或true

答案 2 :(得分:0)

也许是因为你真的应该解析它们:

lblResultID.Text = (int.Parse(lblOldID.Text) - int.Parse(lblNewID.Text)).ToString();

或者以字符串格式:

lblResultID.Text = lblOldID.Text + " - "+ lblNewID.Text;