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. c++ 中. 和 ->,波浪号 ~ 符号怎么用 ————很重要

    参考:https://www.cnblogs.com/Simulation-Campus/p/8809999.html 1.  用在类中的析构函数之前,表示该函数是析构函数.如类A的析构函数 clas ...

  2. 别人写的很好Arduino教材

    原文来自:https://www.arduino.cn/thread-31720-1-1.html 上一篇:Arduino教程--通过 库管理器 添加库 http://www.arduino.cn/t ...

  3. Trie树【字典树】浅谈

    最近随洛谷日报看了一下Trie树,来写一篇学习笔记. Trie树:支持字符串前缀查询等(目前我就学了这些qwq) 一般题型就是给定一个模式串,几个文本串,询问能够匹配前缀的文本串数量. 首先,来定义下 ...

  4. 基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务

    本文首发于 码友网 -- <基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务> 前言 ...

  5. postgreSQL与Kingbase 字符串裁剪区别

    --postgreSQL postgres=# select substring('abcdefg',0,4); substring abc (1 行记录) postgres=# select sub ...

  6. python反序列化学习记录

    pickle与序列化和反序列化 官方文档 模块 pickle 实现了对一个 Python 对象结构的二进制序列化和反序列化. "pickling" 是将 Python 对象及其所拥 ...

  7. nginx的脚本引擎(一)

    nginx的脚本的语法和shell是很像的,我大致看了一下觉得挺有意思的,就想写写记录一下.我没看过shell脚本的引擎,不知道nginx脚本引擎和shell脚本引擎像不像,但是我觉得nginx的脚本 ...

  8. linux centos 04

    1.python的虚拟环境 1.将当前机器上的解释器作为一个 本地,复制出的很多歌 虚拟解释器 物理机上的 本体解释器 ,什么事也不做 分身1:  解释器1:虚拟环境1     运行django  1 ...

  9. selenium基础--环境搭建

    下载地址 Chrome点击下载chrome的webdriver: http://chromedriver.storage.googleapis.com/index.html不同的Chrome的版本对应 ...

  10. C++实现求离散数学命题公式的真值表

    一.实验内容 (1)求任意一个命题公式的真值表. (2)利用真值表求任意一个命题公式的主范式. (3)利用真值表进行逻辑推理. 注:(2)和(3)可在(1)的基础上完成. 二.实验目的 真值表是命题逻 ...