C# 相互减去(-)2个文本标签即可得到结果
嗯,我试过ToInt和ToString,但我别无选择。 我试着从两个标签文本中减去另一个。(这些包含来自RSS的数字) 我现在所拥有的:C# 相互减去(-)2个文本标签即可得到结果,c#,.net,text,C#,.net,Text,嗯,我试过ToInt和ToString,但我别无选择。 我试着从两个标签文本中减去另一个。(这些包含来自RSS的数字) 我现在所拥有的: lblOldID.Text = nodeChannel["oldid"].InnerText; lblNewID.Text = nodeChannel["newid"].InnerText; 假设oldid包含“500”和newid“530” 但由于某种原因,我不能减去(-)它们。 我想要的是: lblResult
lblOldID.Text = nodeChannel["oldid"].InnerText;
lblNewID.Text = nodeChannel["newid"].InnerText;
假设oldid包含“500”和newid“530”
但由于某种原因,我不能减去(-)它们。
我想要的是:
lblResultID.Text = lblOldID.Text - lblNewID.Text;
示例:结果=530-500
那么这是怎么可能的呢?如果您希望标签文本按字面意思是
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();
(如果其中任何一个值都可能无法完全转换为整数,则需要在其中进行一些错误检查)如果希望标签文本从字面上看是
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();
(如果其中任何一个值都可能无法完全转换为整数,则需要在其中进行一些错误检查)可能是因为您确实应该解析它们:
lblResultID.Text = (int.Parse(lblOldID.Text) - int.Parse(lblNewID.Text)).ToString();
或字符串格式:
lblResultID.Text = lblOldID.Text + " - "+ lblNewID.Text;
也许是因为您真的应该解析它们:
lblResultID.Text = (int.Parse(lblOldID.Text) - int.Parse(lblNewID.Text)).ToString();
或字符串格式:
lblResultID.Text = lblOldID.Text + " - "+ lblNewID.Text;
您需要将文本转换为整数
//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
。您需要将文本转换为整数
//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
,如果数字被成功解析)。因此,您希望结果字面上是530-500
?因此,您希望结果字面上是530-500
?应该是“convert”而不是“cast”+1角色和演员是两个截然不同的概念。抱歉,更正。我最初打算做一个显式转换,但更改了代码,因为我觉得这种方法在本例中更健壮,更实用。Int32.TryParse返回bool。。。我试图编辑,但显然没有被接受。为此我删除了+1。我想我同时也在编辑。为了清楚起见,我明确地将第一个和第二个放在了后面,而不是在一个if
语句中同时使用它们。应该是“convert”而不是“cast”+1角色和演员是两个截然不同的概念。抱歉,更正。我最初打算做一个显式转换,但更改了代码,因为我觉得这种方法在本例中更健壮,更实用。Int32.TryParse返回bool。。。我试图编辑,但显然没有被接受。为此我删除了+1。我想我同时也在编辑。为了清晰起见,我明确地将第一个
和第二个
保留下来,而不是在一个if
语句中同时使用它们。