Вычтите (-) 2 текстовых метки друг от друга, чтобы получить результат - PullRequest
0 голосов
/ 26 сентября 2011

Ну, я пробовал это с 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 ]

3 голосов
/ 26 сентября 2011

Вам необходимо преобразовать текст в целые.

//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, если числа были успешно проанализированы).

3 голосов
/ 26 сентября 2011

Если вы хотите, чтобы текст метки был буквально 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();

(там вам понадобится некоторая проверка ошибок, если есть вероятность того, что любое значение может быть не полностью преобразовано в целое число)

0 голосов
/ 26 сентября 2011

Возможно, потому что вы действительно должны их проанализировать:

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

Или в строковом формате:

lblResultID.Text = lblOldID.Text + " - "+ lblNewID.Text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...