zoukankan      html  css  js  c++  java
  • Map,一个存放可重复key的无序列表


    代码已经经过初步测试,未来会有更多的类方上来,包括

    Hashtable 存放非重复key的无序列表(.net标准类库,不需要重写)

    HashArray 存放非重复key的有序列表

    Bag 存放重复key的有序列表

    Map 存放重复key的无序列表

    ////////
    using System;
    using System.Collections;

    namespace deltav.Collections
    {

        
    /// <summary>可以有键值重复的无序列表</summary>
        public class Map : IDictionary, IDisposable
        
    {
            
    Internal Data

            
    Constructors

            
    Internal Functions 

            
    /// <summary>
            
    /// 计算key对应的对象个数
            
    /// </summary>
            
    /// <param name="key">key</param>
            
    /// <returns>对象个数</returns>

            public int CountKey(object key)
            
    {
                
    if (this.m_InternalData.ContainsKey(key))
                    
    return ((ArrayList)this.m_InternalData[key]).Count;
                
    else
                    
    return 0;
            }


            
    public void RemoveAt(object key, int index)
            
    {
                
    if (m_InternalData.ContainsKey(key))
                
    {
                    MakeKeyExist(key).RemoveAt(index);
                    
    --m_Count;
                    
    ++m_Version;
                }

                
    else
                    
    throw new ArgumentOutOfRangeException("index");
            }


            
    public object this[object key, int index]
            
    {
                
    get
                
    {
                    
    if (this.m_InternalData.ContainsKey(key))
                    
    {
                        
    return MakeKeyExist(key)[index];
                    }

                    
    else
                        
    throw new ArgumentOutOfRangeException("index");
                }

                
    set
                
    {
                    MakeKeyExist(key)[index] 
    = value;
                }

            }


            IEnumerator GetEnumerator(
    object key)
            
    {
                
    if (this.m_InternalData.ContainsKey(key))
                    
    return MakeKeyExist(key).GetEnumerator();
                
    else
                    
    return null;
            }


            
    Internal Enumerator

            
    IDictionary Members

            
    ICollection Members

            
    IEnumerable Members

            
    IDisposable Members
        }



    }
  • 相关阅读:
    UOS ROOT如何SSH登陆
    UOS打印日志提示Can’t create temporary file,无法打印如何处理
    UOS简易OEM ISO镜像的步骤(UOS如何自行定制镜像文件)
    UOS火狐浏览器如何下载并安装Adobe Flash Player插件【AMD】
    UOS如何录制屏幕视频
    UOS怎么进入到单用户模式
    UOS免密访问windows共享文件夹
    UOS命令行服务器离线授权码激活步骤
    UOS怎么安装搜狗拼音输入法【x86】
    UOS如何安装RTX客户端-更新版(X86)
  • 原文地址:https://www.cnblogs.com/BigTall/p/64197.html
Copyright © 2011-2022 走看看