2016-07-29 62 views
-2

我想从字符串形式的数字arraylist数组arraylist。当我运行下面的代码,将temp显示为一个字符串并且因此uocountdown值最终被像-2147483637值,而不是44与convert.toint32错误

uoitemQuantity是字符串的ArrayList

uocountdown应该是整数

的ArrayList
For it = 0 To uocount.Count - 1 
    Dim temp As Integer = Convert.ToInt32(uoitemQuantity(it)) 
    uocountdown.Add(temp) 
Next 

我不知道为什么这不起作用,任何帮助将不胜感激。

+4

使用'List(Of Int32)'而不是arraylist,你不必转换 – Plutonix

回答

-1

您可以使用CInt类型转换函数,它可以将字符串转换为整数。
因此,而不是你的代码会是这个样子:

For it = 0 To uocount.Count - 1 
    Dim temp As Integer = CInt(uoitemQuantity(it)) 
    uocountdown.Add(temp) 
Next 

您也可以通过在ArrayList中所有元素的直接像这样的东西:

For Each it As String In uoitemQuantity 
    uocountdown.Add(CInt(it)) 
Next 

以上只是遍历每个元素的ArrayList依次。将数组列表中已转换的字符串添加到倒计时中。如果你只想遍历uoitemQuantity的一部分而不是整个东西,这将是无效的。

建议使用List(of Int32)也可以。

+1

那么,你能解释OP的代码有什么问题,以及你的答案如何更好? – sstan

+0

我找不到OP的代码有问题,我只是提出了另一种做同样事情的方法。他没有具体说明发生了什么问题,因为我无法评论,但希望他知道我必须作出回答,因此要说出更长的时间。 我只是给OP提供了一个替代的可能性,因为他说他的代码没有工作。 – Edlothiad

+0

downvoted的人能否提供建设性的批评?我回答的方式有什么问题吗? – Edlothiad