Dan*_*iel 3 .net vb.net arraylist
我工作的代码库在几个地方的代码类似于以下代码:
Dim i As Integer
Dim ints As New ArrayList
ints.Add(1)
'... lets say we add more Integers
For each i in ints.ToArray(GetType(Integer))
'Do something
Next
Run Code Online (Sandbox Code Playgroud)
我想知道.ToArray(GetType(Integer))从那以后在运行时几乎得到相同的结果,从中获得了什么好处.那是在呼唤For Each i In ints.我看到的唯一区别是,ArrayList如果你没有调用.ToArray(),如果结果错误消息中的某些类型不是Integer.
我为什么要使用ToArray(type)上ArrayList,如果我会做一个For Each地方已经指定类型的循环?
如果我要进行已指定类型的For Each循环,为什么我要在ArrayList上使用ToArray(type)?
通常,您可能不想这样做.调用ToArray()实际上会创建一个新的值数组.
这可能是有益的一个地方是你的循环将要修改ArrayList.枚举它们时无法修改大多数集合,因此您将获得异常.通过添加ToArray调用,您将枚举集合的副本(作为数组),以便您可以修改原始集合.
请注意,一般情况下,如果是这种情况,我会使用ToList(),而不是ToArray(),因为它通常更有效(通常少一个内存分配).我还建议使用List(Of Integer)而不是ArrayList任何新代码,因为你得到类型安全.
| 归档时间: |
|
| 查看次数: |
598 次 |
| 最近记录: |