2015-05-28 4 views
1

Я довольно новичок в C#, и по какой-то причине мой номер не конвертирует для меня жизнь. Мой код:Невозможно преобразовать строку в uint в C#

foreach(var descriptionid in test.items) 
{ 
    ulong description = Convert.ToUInt32(descriptionid.Value.descriptionid); 
    Console.WriteLine(description); 
} 

Любая помощь действительно оценена!

Edit: Это сообщение об ошибке: http://gyazo.com/ed87941f4c8226ad6ebfd60879a5f173

+0

В чем проблема и сообщение об ошибке? – Peyman

+0

Noo, его уже строка, и мне нужно преобразовать ее в uint – ETurns

+1

Назовите свои переменные в соответствии с их функциональностью. В любом случае, 'descriptionid.Value.descriptionid' на самом деле не является хорошей практикой. О вашем вопросе: отлаживайте его, входите в цикл foreach и узнайте, что это такое значение, равное тому, когда оно ломается. Btw, long - Int64, а не Int32. –

ответ

1

Fisrt всего вам нужно, чтобы избавиться от «_0», которые существуют в конце номера, как это:

string number = descriptionid.Value.descriptionid.ToString(); 
string[] nums = number.Split ('_'); 

И чем написать следующий код:

ulong description = Convert.ToUInt64(nums[0]); 
+0

System.Convert не содержит определения для «ToiUlong» – ETurns

+0

Исправлено, см. Выше –

+0

Я получаю такое же сообщение об ошибке – ETurns

0

Я не знаю, что это ваша проблема и ошибка (что descriptionid.Value.descriptionid ?????), но вы можете изменить свой код следующим образом:

foreach(var descriptionid in test.items) 
{ 
    //var description = Convert.ToUInt64(descriptionid.Value.descriptionid); 
    var description = Convert.ToUInt64(descriptionid.Value.descriptionid.Split(new char[]{'_'})[0]); 

    Console.WriteLine(description); 
} 
+0

Я обновил сообщение, чтобы добавить скриншот об ошибке! – ETurns

Смежные вопросы