【c#集合】Lookup 类 有序字典 SortedDictionary

Dictionary<TKey,TValue>类支持每个键关键一个值,Lookup<TKey,TElement>类非常类似于Dictionary<TKey,TValue>类,但把键映射到一个值集合上,这个类在程序集System.Core中实现

用System.Linq名称空间定义。

Lookup<TKey,TElement>类不能像一般的字典那样创建,而必须调用ToLookup()方法,该方法返回一个Lookup<TKey,TElement>对象。ToLookup()方法是一个扩展方法,它可以用于实现IEnumerable<T>接口的所有类。只要有实现IEnumerable<T>接口的都可以调用这个ToLookup()方法。

这个方法需要一个Func<TSource,TKey>类型的委托,这个委托定义了键的选择器。

 有序字典

 SortedDictionary<TKey,TValue> 是一个二叉搜索树,其中元素根据键来排序。

该键类型必须实现IComparable<Tkey>接口。如果键的类型不能排序,则还可以

创建一个实现了IComparer<TKey>接口的比较器,将比较器用作有序字典的构战函数的一个参数。

  SortedDictionary<TKey,TValue>和SortedList<TKey,TValue>功能相似,

但 SortedList<TKey,TValue>实现为一个基于数组的列表,而SortedDictionary<TKey,TValue>

类实现为一个字典。

SortedList<TKey,TValue>使用的内存比SortedDictionary<TKey,TValue>少

SortedDictionary<TKey,TValue>的元素插入和删除操作比较快。

在用已排好序的数据填充集合时,若不需要修改容量,SortedList<TKey,TValue> 就比较快。

包含不重复元素的集合称为集(set).Net Framework包含两个集(HashSet<T>和SortedSet<T>),它们都实现ISet<T>接口。

HashSet<T>集包含不重复元素的无序列表,SortedSet<T>集包含不重复的有序列表

【c#集合】Lookup 类 有序字典 SortedDictionary<TKey,TValue> 集

上一篇:利用Strategy Pattern(策略模式)替换switch case


下一篇:C#的泛型的类型参数可以有带参数的构造函数的约束方式吗?