集合的学习总结

 参考:http://www.cnblogs.com/jesse2013/p/CollectionsInCSharp.html  http://www.cnblogs.com/sunqiang/p/4444235.html
http://www.cnblogs.com/cxiaojia/archive/2012/08/10/2632055.html 线性表2种区别


分为顺序存储结构(顺序表)和链式存储结构(链表)
顺序表在内存中是顺序存储,首尾相连,遍历方便(O(1),最快O(logn)),但是插入删除复杂(最慢达到o(n)),因为改动一个其他的位置都要改变
链表是无序的,一般包含一个值域和指针域,指针域存储指向下一个元素的位置,插入删除方便(O(1)),但是访问和遍历复杂度高(O(n))
数组是顺序表 list本质是数组,数组无法动态分配大小,list会根据集合的大小在内存中动态的分配内存和拷贝数据集合
stack 是后进先出的队列 queue是先进先出的队列
关联性集合(可以通过key值查找的)Dictionary-哈希表 SortedDictionary-二叉树 SortedList-支持排序的数组 字典表查找速度快,内部是哈希表,不支持顺序遍历,SortedDictionsry是按key值进行排序的字典 SortedList是按key排序的数组
非关联性集合 List-动态数组(顺序表) LinkedList-双向链表 stack queue haspset等

  yield用来构建迭代器,返回类型必须是IEnumerable\IEnumerable<T>\IEnumerator\IEnumerator<T>这几种类型
  构建yield迭代器的类不必非得实现IEnumerable
  yield只有yield return 和yield break两种用法
  想要对类使用foreach 类就必须实现IEnumerable接口
  返回IEnumerable-支持遍历的 返回IEnumerator-不支持遍历的

转载于:https://www.cnblogs.com/rookiego/p/5542690.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值