Collection和List有什么区别?

billow_chentao 2009-06-10 12:36:06
以 前一直喜欢把对象做成Collection如下:
Public Class clsQuestionnaireCollection
Inherits System.Collections.ObjectModel.KeyedCollection(Of String, clsQuestionnaire)
Protected Overrides Function GetKeyForItem(ByVal item As clsQuestionnaire) As String
Return item.ID
End Function
End Class

最近看别人的代码里都是把一组对象做成List如下:
Dim xList As List(Of clsQuestionnaire)

我想问这两种方法有什么不一样的?分别有哪些优缺点?
...全文
211 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
billow_chentao 2009-06-11
  • 打赏
  • 举报
回复
有点云里雾里的
ineedchrist 2009-06-10
  • 打赏
  • 举报
回复
List<(Of <(T>)>) 类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<(Of <(T>)>) 泛型接口。
List<(Of <(T>)>) 类既使用相等比较器又使用排序比较器。
List<(Of <(T>)>) 接受 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing) 作为引用类型的有效值并且允许有重复的元素。

Collection 是可作为一个单元引用的一组有序项, 它提供了一种将一组相关项视为一个对象的便捷方法。集合中的项(也称“元素”)只需要位于集合中即成为相关项。集合中的元素不需要具有相同的数据类型。

List<(Of <(T>)>) 类在大多数情况下执行得更好并且是类型安全的。如果对 List<(Of <(T>)>) 类的类型 T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List<(Of <(T>)>) 类的实现。这意味着不必对 List<(Of <(T>)>) 对象的列表元素进行装箱就可以使用该元素,并且在创建大约 500 个列表元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。


16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧