首页 > 编程语言 >Hashtable工具类 - C#小函数类推荐

Hashtable工具类 - C#小函数类推荐

时间:2024-08-06 09:27:54浏览次数:13  
标签:函数 C# ht hto Hashtable key arrList public

       此文记录的是一个Hashtable的增强版本,以前没泛型的时候笔者喜欢用Hashtable,性能刚刚的。

/***

    Hashtable工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

***/

namespace Lzhdim.LPF.Utility
{
    using System.Collections;

    /// <summary>
    /// The Object inherit of Hashtable
    /// </summary>
    public class HashtableExtend : Hashtable
    {
        /// <summary>
        /// 成员变量
        /// </summary>
        private Hashtable hto = null;

        /// <summary>
        /// 构造函数
        /// </summary>
        public HashtableExtend()
        {
            this.hto = new Hashtable();
        }

        /// <summary>
        /// Add New item
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public override void Add(object key, object value)
        {
            this.hto.Add(key, value);
        }

        /// <summary>
        /// Create a copy Hashtable of the Object
        /// </summary>
        /// <returns></returns>
        public Hashtable Copy()
        {
            Hashtable ht = new Hashtable();

            foreach (DictionaryEntry de in this.hto)
            {
                ht.Add(de.Key, de.Value);
            }

            return ht;
        }

        /// <summary>
        /// Remove a item by key
        /// </summary>
        /// <param name="key"></param>
        public override void Remove(object key)
        {
            this.hto.Remove(key);
        }

        /// <summary>
        /// ASC Sort by key
        /// </summary>
        public void SortByKeyASC()
        {
            ArrayList arrList = new ArrayList(this.hto.Keys);
            arrList.Sort();

            Hashtable ht = new Hashtable();

            for (int i = 0; i < arrList.Count; i++)
            {
                ht.Add(arrList[i], this.hto[arrList[i]]);
            }

            this.hto.Clear();
            this.hto = ht;
        }

        /// <summary>
        /// DESC Sort by key
        /// </summary>
        public void SortByKeyDESC()
        {
            ArrayList arrList = new ArrayList(this.hto.Keys);
            arrList.Sort();

            Hashtable ht = new Hashtable();

            for (int i = arrList.Count - 1; i >= 0; i++)
            {
                ht.Add(arrList[i], this.hto[arrList[i]]);
            }

            this.hto.Clear();
            this.hto = ht;
        }
    }
}

 

标签:函数,C#,ht,hto,Hashtable,key,arrList,public
From: https://www.cnblogs.com/lzhdim/p/18325699

相关文章

  • leetcode数论(2453. 摧毁一系列目标)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。描述给你一个下标从 0......
  • PHP中如何实现函数的可变参数列表
    在PHP中,实现函数的可变参数列表主要有两种方式:使用func_get_args()函数和使用可变数量的参数(通过...操作符,自PHP5.6.0起引入)。1.使用func_get_args()函数func_get_args()函数用于获取传递给函数的参数列表,并作为一个数组返回。这种方式不需要在函数定义时明确指定参数的数......
  • leetcode数论(326. 3 的幂)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。描述给定一个整数,写一个......
  • ACM日常训练日记——8.2
    小训练KevinandPermutation题解很好不多说#include<bits/stdc++.h>usingnamespacestd;intT,n;intmain(){ cin>>T; while(T--){ cin>>n; for(inti=1;i<=n/2;i++)cout<<i+n/2<<''<<i<<''; ......
  • 热烈祝贺华企盾科技获得ISO/IEC 27001信息安全管理体系认证证书!
    近日,北京华企盾科技有限责任公司顺利通过权威认证机构的严格审核,获得“ISO/IEC27001信息安全管理体系认证证书”。认证范围涵盖与计算机软硬件销售及软件运维相关的信息安全管理活动等。信息安全管理实用规则ISO/IEC27001是国际上具有代表性的信息安全管理体系标准,已在世界各......
  • 数据结构 顺序表 -- C语言实现
    顺序表概念顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储元素。动态顺序表:使用动态开辟的数组存储。代码实现动态顺序表静态顺序表只适用于确定......
  • Apache Flink开发时选择Java还是Scala作为编程语言
    在ApacheFlink的开发过程中,选择Java还是Scala作为编程语言是一个重要的决策点。这两种语言各有其独特的优势和特点,适合不同的开发场景和需求。以下是对这一选择的详细探讨,旨在帮助开发者更好地理解并做出合理的选择。一、ApacheFlink简介ApacheFlink是一个开源的分布式......
  • Tomcat 使用和配置文件(详解)
    一.tomcat介绍1.tomcat概述自从JSP发布之后,推出了各式各样的JSP引擎。ApacheGroup在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。Tomcat是jakarta项目中的一个重要的子项目,其......
  • Tomcat高可用集群(实例详解)
    一.环境准备虚拟机的版本:VMware-workstation-full-15.5.6-16341506.exe系统镜像版本:CentOS-6.10-x86_64-bin-DVD1.iso,全新安装,桌面版,可上网系统内存大小:1GB系统硬盘大小:20GB连接工具版本:SecureCRTSecureFX_HH_x64_7.0.0.326.zip二.集群概述由于单台Tomcat的承载能力是有限的......
  • BIOS1101 Evolutionary and Functional
    BIOS1101Evolutionaryand Functional Biology -2024GeneralCourseInformationCourseCode:  BIOS1101Year : 2024Term: Term2CourseDetails&OutcomesCourseDescriptionThis course examines the evolutionary history of life on earth fr......