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

来源:互联网 发布:mac系统盘制作工具 编辑:程序博客网 时间:2024/05/25 01:34

更多集合类型


List和Dictionary只是.NET Framework内建的泛型集合类中的两个。List和Dictionary很灵活--你可以以任何顺序访问其中的数据。但是有时候你需要限制程序操作数据的方式,因为程序中的事物要和现实世界中的事物以相似的方式运作。这种情况下,你可能会用到Queue和Stack。这两个泛型集合和List很是类似,但是它们可以确保你的数据是以一定的顺序被处理的。


先存储的对象先使用的情况下,使用Queue,就像这些情况:


汽车跑在单行道上

人们在排队

消费者等待服务支持热线

任何基于先来先服务的事物


Queue(队列)是先进先出的,也就是说你放进去的第一个对象就是第一个你要取出来用的对象。


最近存储的对象最先使用的情况下,使用Stack,比如:


把家具装进卡车

你想要读一堆书中最近刚刚放进去的那一本

啦啦队长叠罗汉,最上面的人必须最先下来...想像一下如果下面的人先走开会有多糟糕啊!

Stack(堆栈)是先进后出的,最先进入其中的对象最后才出来。


泛型集合是.NET Framework中很重要的一部分


它们很是有用--以至于IDE会在你加入项目中的每个类的顶部添加这一句:


Using System.Collections.Generic;


你要参与的每一个大型项目几乎都会用到某些泛型集合,因为你的程序需要存储数据。你在现实世界中与一组组的相似事物打交道的时候,这些事物总是很自然的分属某个类属,而这些类属和集合类型很是相似。


队列就像是一个只可以在尾部加入对象,只可以在头部取出对象的列表。而堆栈只允许你访问最后存储进去的对象。


然而,你可用foreach来遍历队列和堆栈,因为它们实现了IEnumerable!

原创粉丝点击