C#中hashtable的赋值、取值、遍历、排序操作

一,哈希表(Hashtable)简述

在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,
用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,
同时key是区分大小写;value用于存储对应于key的值。
Hashtable中key/value键值对均为object类型,
所以Hashtable可以支持任何类型的key/value键值对。

二,哈希表的简单操作

在哈希表中添加一个key/value键值对:

HashtableObject.Add(key,value);

在哈希表中去除某个key/value键值对:

HashtableObject.Remove(key);

从哈希表中移除所有元素:

HashtableObject.Clear();

判断哈希表是否包含特定键key:

HashtableObject.Contains(key);

下面控制台程序包含以上所有操作示例:

using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
 public static void Main()
 {
  Hashtable ht=new Hashtable(); //创建一个Hashtable实例
  ht.Add("E","e");//添加key/value键值对
  ht.Add("A","a");
  ht.Add("C","c");
  ht.Add("B","b");
  string s=(string)ht["A"];
  if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
  Console.WriteLine("the E key:exist");
  ht.Remove("C");//移除一个key/value键值对
  Console.WriteLine(ht["A"]);//此处输出a
  ht.Clear();//移除所有元素
  Console.WriteLine(ht["A"]); //此处将不会有任何输出
 }
}

三,遍历哈希表

遍历哈希表需要用到DictionaryEntry Object,代码如下:

foreach(DictionaryEntry de in ht) //ht为一个Hashtable实例
{
 Console.WriteLine(de.Key);//de.Key对应于key/value键值对key
 Console.WriteLine(de.Value);//de.Key对应于key/value键值对value
}

四,对哈希表进行排序

对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:

ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
akeys.Sort(); //按字母顺序进行排序
foreach(string skey in akeys)
{
 Console.Write(skey + ":");
 Console.WriteLine(ht[skey]);//排序后输出
}

hashtable不能排序,但是可以使用TreeMap来代替Hashtable。

TreeMap ts=new TreeMap();
ts.put(new Integer("1"),"aaa1");
ts.put(new Integer("3"),"aaa3");
ts.put(new Integer("2"),"aaa2");
ts.put(new Integer("5000"),"aaa500");
ts.put(new Integer("2000"),"aaa2000");
Set st=ts.keySet();
for(Iterator i=st.iterator();i.hasNext();)
{
    System.out.println(ts.get(i.next()));
}
 
时间: 2024-08-02 10:57:39

C#中hashtable的赋值、取值、遍历、排序操作的相关文章

ASP.Net TextBox只读时不能通过后台赋值取值

给页面的TextBox设置ReadOnly="True"时,在后台代码中不能赋值取值,下边几种方法可以避免: 1.不设置ReadOnly,设置onfocus=this.blur() C#代码 <asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox> [c#] view plaincopyprint? <asp:TextBo

关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)

先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*> +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +127:0111 1111 -127:1000 0001 +128:0 1000 0000   -128:1000 0000 从上述过程对比可以看出:+128是在127的基础上加1得到,但是会造成溢出(JAVA中byte的大小

数据结构之堆的插入、取值、排序(细致讲解+图片演示)

数据结构之堆(Heap):插入.取值.排序. 堆是一种数据结构,分为最小堆和最大堆,可以用二叉树来表示. 在二叉树的任意的一个三角结构中(一个父节点,两个子节点),需要满足以下两个条件: 1.父节点要是最小的,就是最小堆(或最大的,就是最大堆),两个子节点之间没有要求 2.数据插入的顺序是一层一层的,只有上一层存满,才会有下一层 下面我们以图片的形式演示最小堆的插入.取值.和排序操作,只要知道最小堆的原理,那么最大堆也就明白了. 假设我们有一个原始的最小堆如下: 插入操作: 当插入一个新值时,首

angularjs环境中为Tinymce编辑器取值或赋值

Tinymce版本,5.2.1 html: 取值或赋值, 方法1: 方法2: 原文地址:https://www.cnblogs.com/insus/p/12677535.html

SSH中各种形式的取值方式

现在这个项目是用SSH来开发的,遇到很多取值方式,在此总结一下,因为一直在用,很容易弄混,取值有问题: JSP通过url参数值取值: 例如:http://127.0.0.1:8080/portal/login!toAddPag.action?keyCode=1234555 通过以下语句取值: <% String keyCode=request.getParameter("keyCode"); %> 在页面中显示值:有以下两种方式: 第一: <%=keyCode  %&

Loadrunner 关于参数赋值取值的操作

1.参数的赋值和取值 lr_save_string("hello world","param"); lr_eval_string("{param}"); 2.变量到参数 int x; char *y; y="hello"; x=10; lr_save_int(x,"param"); lr_save_string(y,"param1"); lr_eval_string("{par

探讨:如何更快的赋值取值

背景 显示数据时,常规赋值与取值是这样的. // set $("#name").val(data.name); $("#realname").val(data.realname); $("#address").val(data.address); $("#sex").val(data.name); $("#love").attr(!!data.love); // get var data = { name:

s:radio 赋值取值和添加事件

<s:radio list="#{'1':'未锁','2':'锁定'}" cssClass="lockFlag" id="lockFlag" name="obj.lockFlag" theme="simple" cssStyle="width: 30px;" > </s:radio> //取值 var flag = $("input[name='obj.

Django2.0中的on_delete字段取值含义

在Django的2.0版本中,外键字段 ForeignKey 和一对一字段 OneToOneField 都必须设置 on_delete 属性,否则会有以下报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 对于on_delete字段的取值含义如下: on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为 on_delete=models.CASCADE, #

jquery给div,Span,赋值取值

jquery给div的innerHTML赋值 $("#id").html()="test"; //或者 $("#id").html("test"); jquery 给span 赋值 $('#hiddenNote').text(‘getSpanValues’); span取值 $('#hiddenNote').text(); 原文地址:https://www.cnblogs.com/zhongzhipeng/p/11375213