C# 集合类自己经常用到: 数组(Array)、动态数组(ArrayList)、列表(List)、哈希表(Hashtable)、字典(Dictionary),对于经常使用的这些数据结构,做一个总结,便于以后备忘使用。

1 所在命名空间

using System.Collections.Generic;

using System.Collections;

2 哈希表(Hashtable)

对数据是成对关联使用的键值对使用哈希表,例如银行通过银行卡号找到持卡人。

2.1 初始化

//创建不同副本,根据需要使用不同的构造函数,zd10-01

Hashtable ht = new Hashtable();
Hashtable ht1 = new Hashtable(10);

2.2 遍历方法

private void NavigateKeys(Hashtable hr)
{
foreach (object key in hr.Keys)
{
MessageBox.Show(key.ToString() + "kkk");
}
}
private void NavigateValues(Hashtable hr)
{
foreach (object value in hr.Values)
{
MessageBox.Show(value.ToString() + "vvv");
}
}
private void NavigateEntrys(Hashtable hr)
{
foreach (DictionaryEntry entry in hr)
{
MessageBox.Show(entry.Key.ToString()+entry.Value.ToString() + "eee");
}
}

2.3增查改删

//zd10-01

常用属性

count,Item,IsFixedSize,IsReadOnly,Keys(只读,键的集合,不允许重复),Values 值的集合

方法

增:

Add

//例

Hashtable ht1 = new Hashtable(10);

ht.Add(1, "st1");

ht.Add(2, 3);

ht.Add("KeysObject","ValuesObject");

//遍历

NavigateKeys(ht);

删:

Remove,Clear

//删除键值为1的元素

ht.Remove(1);

ht.Clear();

搜索:

Contains,ContainsKey,ContainsValue

bool bok =ht.Contains(1);

bool bok = ht.ContainsKey(1);

bool bok = ht.ContainsValue("str");

其他 CopyTo

C# 集合类(三)的更多相关文章

  1. OC语言(六)

    四十六.block类型 用来封装代码,可以在任何时候执行. 与函数的区别:可以在运行时动态产生. block的标志:^ 有形参.有返回值 int (^sumblock)(int,int) = ^(in ...

  2. python面对对象编程------3:写集合类的三种方法

    写一个集合类的三种方法:wrap,extend,invent 一:包装一个集合类 class Deck: def __init__( self ): self._cards = [card6(r+1, ...

  3. Java进阶篇(三)——Java集合类

    集合可以看作一个容器,集合中的对象可以很容易存放到集合中,也很容易将其从集合中取出来,还可以按一定的顺序摆放.Java中提供了不同的集合类,这些类具有不同的存储对象的方式,并提供了相应的方法方便用户对 ...

  4. Java进阶(三十九)Java集合类的排序,查找,替换操作

    Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...

  5. java集合类源码学习三——ArrayList

    ArrayList无疑是java集合类中的一个巨头,而且或许是使用最多的集合类.ArrayList继承自AbstractList抽象类,实现了List<E>, RandomAccess, ...

  6. java中的集合类学习(三)

    JAVA中有许多的集合,常用的有List,Set,Queue,Map. 1.其中List,Set,Queue都是Collection(集合),其每个元素都是单独的一个对象,如List<Strin ...

  7. java集合类(三)About Iterator & Vector(Stack)

    接上篇:java集合类学习(二) Talk about “Iterator”: 任何容器类,在插入元素后,还需要取回元素,因为这是容器的最基本工作.对于一般的容器,插入有add()相关方法(List, ...

  8. Java集合类总结 (三)

    HashSet类 关于HashMap的实现细节 HashMap是用LinkedList实现的,每个list被称为一个桶(bucket),在hashmap中要查找一个元素,首先对传入的key进行散列,并 ...

  9. 集合类源码(三)Collection之List(CopyOnWriteArrayList, Stack)

    CopyOnWriteArrayList 功能 全名 public class CopyOnWriteArrayList<E> implements List<E>, Rand ...

随机推荐

  1. Arduino各开发板

    参考来源:https://www.arduino.cn/thread-42417-1-1.html 查了好久,发现除了奈何等等几位大神总结过arduino各板子之间的性能.差异,没有很新的分析文章,在 ...

  2. 列举python的可变类型和不可变类型

    可变的# unhashable type: 'list'# unhashable type: 'dict'# unhashable type: 'set'# 不可变# hashable type:st ...

  3. NOIP提高组2016 D1T2 【天天爱跑步】

    码了一个下午加一个晚上吧...... 题目描述: 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成 ...

  4. 字节码暴力破解censum(老版本)

    声明 事先声明,本文仅提供破解方法以供个人及读者们学习Java字节码,不提倡破解程序. 本文是个人学习掘金小册张师傅的<JVM字节码从入门到精通>后,作为一个实践的记录,并无恶意. 关于c ...

  5. 【Office-Word妙手回春】Word文本秒转表格

    第一步:Ctrl+A组合键,文本全选 第二步:插入→表格→文本转换成表格 第三步:在"文字分隔位置",勾选相应的符号. 此处的分隔符为 空格. 点击"确定"按钮 ...

  6. CentOS7 执行 service iptables save 报错 The service command supports only basic LSB actions xxxxxx

    现象描述 在 CentOS 7.6.1810 下执行 service iptables save 命令,出现如下错误: [root@test ~]# service iptables save The ...

  7. java流程控制学习

    Java流程控制 计算的步骤就是算法. 1.用户交互Scanner next()不能得到带有空格的字符串.[它是以空格为结束符]nextline()可以,[它是以回车为结束符] 2.顺序结构 从上到下 ...

  8. Linux就该这么学28期——Day05 vim编辑器与Shell命令脚本 (yum配置 网卡配置)

    vim 三种模式: 命令模式 按行操作 dd 剪切.删除 5dd dG   全删 yy 复制光标所在行 p 粘贴 u 撤销操作 / 搜索 /ab n  下一个 N   上一个 输入模式 a 当前光标处 ...

  9. ucore操作系统学习笔记(二) ucore lab2物理内存管理分析

    一.lab2物理内存管理介绍 操作系统的一个主要职责是管理硬件资源,并向应用程序提供具有良好抽象的接口来使用这些资源. 而内存作为重要的计算机硬件资源,也必然需要被操作系统统一的管理.最初没有操作系统 ...

  10. java字符流与字节流的区别是什么

    java中字符流与字节流的区别: 1.字节流操作的基本单元为字节:字符流操作的基本单元为Unicode码元. 2.字节流默认不使用缓冲区:字符流使用缓冲区. 3.字节流通常用于处理二进制数据,实际上它 ...