C#中的各种集合(未完待续)

泛型集合类&非泛型集合类

泛型集合类:属于强类型,主要是指在代码编译期间就进行检查。如List<string>,不是string类型的object是不可以添加到泛型的。Dictionary也是强类型。

非泛型集合类:属于弱类型,这类集合不会在编译期间就进行检查。在遍历期间可能会涉及到类型转换时,容易引起类型转换的异常。ArrayList,HashTable,等等。

泛型集合类:List<T>,Dictionary<T>,Queue<T>,Stack<T>,SortedList<T>

非泛型集合类:ArrayList,HashTable,Queue,Stack,SortedList

Queue和Stack类

Queue:先进先出,有Enqueue,Dequeue和Peek方法。

Stack:后进先出,有Pop和Push两个重要的方法。Push方法将一个对象送到Stack的最顶端。Pop则是从Stack里将最顶端的对象取出,并删除。Peek方法也只是取得对象的值而不会删除对象的值。

***********************************

Queue testQueue = new Queue();

for(int i = 0;i<5;i++)

{

testQueue.Enqueue(i)

}

Queue = 0,1,2,3,4

Queue.Dequeue();

Queue = 1,2,3,4

***********************************

Stack testStack = new Stack();

for(int i = 0;i<5;i++)

{

testStack.Push(i)

}

testStack= 4,3,2,1,0

testStack.Pop();

Queue = 3,2,1,0

时间: 2024-10-11 17:44:16

C#中的各种集合(未完待续)的相关文章

redmine中创建项目(未完待续)

今天来说下本公司所用到的项目管理工具redmine,总体来说还是比较好用的.redmine中可以记录项目的整个过程,可创建跟踪标签(里程碑.需求用例.功能.任务.缺陷)来进行对项目的管控.跟踪标签根据公司的管理需求自行制定.接下来简单说下创建项目,介绍的内容是根据目前公司项目管理要求制定的,绝对原创,仅供大家参阅. 项目和系统的结构: 项目挂在系统下,若此系统有多个子系统,则将项目分别挂在子系统下. 跟踪标签:里程碑.任务.需求用例.功能.缺陷 项目中各跟踪标签的结构关系 说明: 1.  5个里

C++语言体系设计哲学的一些随想(未完待续)

对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值.具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符.该类型的数据可以包含的值的范围是什么. (2)定义操作的含义 操作是严格数据类型相关的.操作表明了对了一个具有特定类型的数据,执行操作后产生什么样结果. =========================================== C++就是一个典型的静态类型语言.在C++中,无论是"数据类型"还是"操作",都分为

关于DOM的一些总结(未完待续......)

DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.querySelector("选择器"); 通过所需的元素节点,得到我们想要的数据做运算. 实例2:伸缩二级菜单 这里主要是逻辑判断,不同的逻辑给不同的className来控制样式. 需求是:一级菜单可以都关闭,但最多只有一个能打开.(思路是,每次都将所有的一级菜单关闭,然后仅打开当前点击的元素,并

Dancing Links 小结 (因为之前丢了一次稿,未完待续)

Dancing Links (DLX)是Knuth为了解决精确覆盖问题而提出的算法,很多搜索问题可以转化位精确覆盖问题从而使用Dancing Links解决(效率会比DFS高很多,因为里面常常蕴涵着意想不到的剪枝) 信息学竞赛中的DLX的问题类似网络流,只需建图+贴版即可 参考文献: 1.DLX的原理:Knuth的论文: 原版:http://arxiv.org/abs/cs/0011047 翻译版:http://wenku.baidu.com/view/d8f13dc45fbfc77da269b

asp.net面试题总结1(未完待续。。。。)

1.MVC中的TempData\ViewBag\ViewData区别? 答:页面对象传值,有这三种对象可以传. (1)  TempData  保存在Session中,Controller每次执行请求的时候,会从Session中先获取 TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删 除.具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTemp

whatweb.rb 未完待续

#!/usr/bin/env ruby #表示ruby的执行环境 =begin # ruby中用=begin来表示注释的开始 .$$$ $. .$$$ $. $$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$. $ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$. $ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$

[译]App Framework 2.1 (1)之 Quickstart (未完待续)

最近有移动App项目,选择了 Hybrid 的框架Cordova  和  App Framework 框架开发. 本来应该从配置循序渐进开始写的,但由于上班时间太忙,这段时间抽不出空来,只能根据心情和兴趣,想到哪写到哪,前面的部分以后慢慢补上. App Framework 前生是是叫 jqMobi 注意大家不要和 jQuery Mobile 混淆了,它们是两个不同的框架,一开始我还真混淆了0.01秒. 这里我先翻译一下Quickstart 部分,一是自己工作上用的上,二是也想顺便练练英文,最关键

数据结构与算法之--高级排序:shell排序和快速排序【未完待续】

高级排序比简单排序要快的多,简单排序的时间复杂度是O(N^2),希尔(shell)排序的是O(N*(logN)^2),而快速排序是O(N*logN). 说明:下面以int数组的从小到大排序为例. 希尔(shell)排序 希尔排序是基于插入排序的,首先回顾一下插入排序,假设插入是从左向右执行的,待插入元素的左边是有序的,且假如待插入元素比左边的都小,就需要挪动左边的所有元素,如下图所示: ==> 图1和图2:插入右边的temp柱需要outer标记位左边的五个柱子都向右挪动 如图3所示,相比插入排序

git个人使用总结 —— idea命令行、撤销commit (未完待续)

近期在使用git,最开始在idea界面操作,后来要求用命令行.刚开始还不是很习惯,感觉很麻烦,用了几天后感觉爽极了! 其实git的命令也不是很多,熟悉一段时间就差不多能顺利使用了.使用过程中遇到了各种各样的问题,有些小问题就在这里集中总结一下. 1.idea命令行.git安装后就自带终端git bash,使用起来很方便.但是用idea开发,开发后还要在相应文件夹下打开git bash很麻烦.其实idea也带有终端terminal,在最下方可以找到,在这里就可以执行命令.但是如果是默认方式安装的g