1,Array ,ArrayList,List<类型> 数组, 连续分配的,查询速度快,但增删不方便
#region 链表
2,LinkedList<类型>,LinkedListNode<类型> 链表 ,非连续分配,每个元素都有前后节点,找元素只能遍历,查找不方便,增删容易
3,Queue<T> 队列,也是链表,先进先出,增删快,可以重复数据,一般放置任务,延迟执行
4,Stack<T> 栈,也是链表,先进后出
1)Push
2)pok
3)
#endregion
#region Set:
1,HashSet<T> hash集合,hash分布,去重复,元素间没有关系,不能索引获取数据
HashSet<String> hashSet=new HashSet<String>();
hashSet.Add("123");
hashSet.Add("456");
hashSet.Add("456");
应用:两个HashSet 可以进行 交、叉、并、补,操作
2,SortedSet<T> 排序集合,去重+排序,交、叉、并、补 也可以
#endregion
#region Hashtable
1,Hashtable :key-value类型(无序类型),体积动态增加,基于数组实现的,增删查改都快,但是浪费空间,效率可能会低。
线程安全:只有一个线程写,多个线程读。
Hashtable table=new Hashtable();
table.Add("123","456")
table[234]=456;
#endregion
#region Dictionary key-value 类型
1,Dictionary<int,string> 有序的,增删查效率高(数据太多除外)
2,SortedDictionary<int,string>,排序字典,自动排序,增删效率就稍微低一点
3,SortedList list=new SortedList(), 排序列表,key不能重复添加
list.Add("aa","bb");
#endregion
foreach 就是迭代器的实现
yieid 迭代器的实现,状态机形式的,在使用的时候去取值,初始化的时候不会一次性把数据加载 (性能优化)。