您的位置:首页 > 编程语言 > C#

Head First C# 中文版 图文皆译 第八章 枚举和集合 page325

2009-04-08 22:00 423 查看


问:我何时会用枚举代替List呢?它们不是解决一样的问题吗?

答:你可以把枚举看做存储多个常量的简便方法。它们可以使你的代码易读。List中可以存储任何东西。其中的每个元素都有自己的方法和属性。而枚举只可以存储某些数字类型。所以枚举不可用来存储引用类型。枚举也不可以动态改变大小,不可以包含方法不可以实现接口。可以看出枚举和List有很多不同点。但是它们都有各自不同的作用。

问:List看起来很强大。那么我为什么还要用数组呢?

答:数组占用的内存和CPU比较少。如果你的程序对性能要求很严格,比如需要成千次的做同一个操作,你会发现List会使得你的程序变慢。很幸运,你可以通过List的ToArray()方法来把List转化为数组,也可以用List的一个重载的构造方法来把数组转化为List。

问:我不懂“泛型”这个名字。为什么叫做泛型集合呢?数组为什么不是泛型呢?

答:泛型集合是用来存储某种特定类型的集合对象。

问:好的,你解释了“集合”。但是“泛型”呢?

答:无论List<>中存储的是什么类型,它的行为都是一样的。所以无论列表中是什么类型的数据,你总是可以添加、移除、插入...“泛型”这个术语是指虽然一个List的实例只可以存储一种特定类型,但是List类是可以普遍的操作任何类型的。你可以用<T>来把一种类型绑定到一个列表实例。但是List类是可以运用于任何类型的。

问:存在没有类型的列表吗?

答:没有。任何列表--其实,是任何集合类型--必须和一种特定类型绑定。C#中确实有可以存储任何对象的非泛型列表,它叫做ArrayList。但是由于泛型集合的强大,很少有人用非泛型集合了。所以我们不讨论非泛型列表。

创建List对象的时候,总是要指定某种类型--这告诉C#该List对象将要存储哪种数据。它可以存储值类型,也可以存储引用类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# list 存储