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


    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>集包含不重复的有序列表

    ISet<T>接口提供的方法可以创建合集、交集、或者给出一个集是另一个集的超集或子集

     子集:IsSubsetOf()和超集:IsSupersetOf()方法比较集和实现了IEnumerable<T>接口的集合,并返回一个布尔结果。

    真子集:IsProperSubsetOf() 指定集合的真子集 一个空集是任何其他集合的真子集。

    真子集:集合A是集合B的子集,并且集合B不是集合A的子集,那么集合A叫做集合B的真子集。

    真超集:IsProperSupersetOf()指定集合的真超集 一个空集是任何其他集合的真超集。

    如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集。 S1是S2的超集,若S1中一定有S2中没有的元素,则S1是S2的真超集,反过来S2是S1的真子集。

    Overlaps 确定当前的 HashSet<T> 对象和指定的集合是否共享常见元素

    public bool Overlaps (System.Collections.Generic.IEnumerable<T> other);

    如果 HashSet<T> 对象与 other 至少共享一个公共元素,则为 true;否则为 false

    UnionWith:修改当前的 HashSet<T> 对象,以包含该对象本身、指定集合中存在的所有元素或两者。将两个数组合并元素不重复 元素。

  • 相关阅读:
    MySQL数据库分区修改【原创】
    浅谈测试rhel7新功能时的感受及遇到的问题【转载】
    htop安装步骤【原创】
    Shell脚本,自动化发布tomcat项目【转】
    shell编程之服务脚本编写,文件锁以及信号捕获
    如何清除jboss缓存
    device-mapper: multipath: Failing path recovery【转载】
    ajax 设置Access-Control-Allow-Origin实现跨域访问
    HTML5中Access-Control-Allow-Origin解决跨域问题
    深入理解JavaScript系列(结局篇)
  • 原文地址:https://www.cnblogs.com/SignX/p/11285931.html
Copyright © 2020-2023  润新知