好吧,我已经尝试过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
那怎么可能呢?
答案 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;