значение взятое из xml не могу сравнить в if, как сконвертировать?

Sanekk

Client
Регистрация
24.06.2016
Сообщения
987
Благодарностей
388
Баллы
63
Собственно как сконвертить понятно, но если это дело работает в цикле, то когда хочу сравнить две переменных (цифры), то выдает ошибку "Входная строка имела неверный формат."
этот код выдает ошибку:
string id_product = "61771";
int id = int.Parse(id_product);

int xml_count = project.Xml.yml_catalog.shop.offers.offer.Count;// количество офферов в xml

for(int q = 0; q <= xml_count; q++){
  
    project.SendWarningToLog(q.ToString(),false);
  
    string id_by_xml = project.Xml.yml_catalog.shop.offers.offer[q]["id"];
  
    int xml_id = int.Parse(id_by_xml);
  
    if(id == xml_id){// на счете 26 падает по ошибке (Входная строка имела неверный формат.) , как раз тогда когда должно выполнится условие
      
        return "norm";
      
      
    }
}
В проекте 3 кубика там все подписанны.
1) не работает в цикле если сравниваем в int (тут ошибка, не могу понять в чем заключается)
2) нормально работает без цикла в int (тут сравниваю предварительно сконвертировал в int , норм работает)
3) работает в цикле если сравниваем в string (тут в цикле, но сравниваю цифры в стринг, тоже работает, но так сравнивать ведь не надо)

Почему первый вариант не фурычит понять не могу, всю голову сломал.
 

Вложения

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
547
Баллы
93
Почему первый вариант не фурычит понять не могу, всю голову сломал.
Все просто, у тебя id, не является числом.
XML:
id="61771s67444"
Можешь сделать простую проверку на наличие "s"
C#:
if (id_by_xml.Contains("s")) {

string [] sp = id_by_xml.Split("s");

id_by_xml = sp[0];

}

int xml_id = int.Parse(id_by_xml);
Код кривой, писал как пример логики.
 
Последнее редактирование:
  • Спасибо
Реакции: Sanekk

Sanekk

Client
Регистрация
24.06.2016
Сообщения
987
Благодарностей
388
Баллы
63
Все просто, у тебя id, не является числом.
XML:
id="61771s67444"
Можешь сделать простую проверку на наличие "s"
C#:
if (id_by_xml.Contains("s")) {

string [] sp = id_by_xml.Split("s");

id_by_xml = sp[0];

}

int xml_id = int.Parse(id_by_xml);
Код кривой, писал как пример логики.
все верно дружище, спасибо. Это я вчера уже тупить начал :dy:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)