C# 集合总结

Posted luyiwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 集合总结相关的知识,希望对你有一定的参考价值。

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 迭代器的实现,状态机形式的,在使用的时候去取值,不在初始化的时候一次性把数据加载  (性能优化)。

 

以上是关于C# 集合总结的主要内容,如果未能解决你的问题,请参考以下文章

C# 集合总结

C#入门基础语法总结(数组和集合)

初学C#,总结一下.sln和.csproj的区别

.NET中的泛型集合总结

C#的委托事件总结

C#中Lambda表达式总结