C#--Arraylist,list泛型集合,哈希表,字典

C#ArrayList,泛型基础 1、ArrayList是一个极为方便的集合类,无需进行修改即可用于存储任何引用或值类型。但是添加的数据为值类型时需要装箱,检索时需要拆箱,装箱和拆箱会降低性能。故而提供了泛型。eg、泛型-类型名称:在调用时根据实参来确定T的类型public static void print<T>(T a){ Console.WriteLine (a);}public static void Main... 阅读详情

区别和联系

先用两张图帮助大家理解一下他们四者的区别和联系

小杨老师画的图

Arraylist和List泛型集合

从上图可以看出,一个数组只能存储一种类型的数据,而且数据的个数是确定的,在程序设计当中往往不能满足我们的要求,这时候就需用到集合了。arraylist是非泛型集合,它的数据类型为object,可以存储任意类型的数据,同时它是可变长的,使用时需要引入命名空间using System.Collections,这就克服了数组的一些缺点。

当然,我们要是只需要存储一种数据类型,同时不限数据存储的个数,用list<T>泛型集合就可以了,T代表要存储的数据类型,不论用哪种集合,都需要先进行实例化,下面分别举例介绍:

List<string> ListString=new List<string>();   存储string字符串类型的

List<int> ListInt=new List<int>();                    存储int整型的

如果用到多种数据类型的话,就是用arraylist泛型集合:

 ArrayList arraylist = new ArrayList();

arraylist方法详见:

https://blog.csdn.net/wtt15100/article/details/104460377

List集合:

            //随机的往这个list集合中添加10个数据,数据不能重复,求和,求最大值,求最小值,求平均值
            List<int> listint = new List<int>();        //创建一个list集合
            Random r = new Random();
            int num;
            while (listint.Count!=10)
            {
                num = r.Next(1, 100);               //产生随机数
                if (!listint.Contains(num))         //如果list当中不包含这个数
                {
                    listint.Add(num);               //添加到list当中
                }
            }
            Console.WriteLine("总和为:{0}",listint.Sum());
            Console.WriteLine("最大值为:{0}",listint.Max());
            Console.WriteLine("最小值为{0}",listint.Min());
            Console.WriteLine("平均值为{0}",listint.Average());
            Console.ReadKey();

Hashtable哈希表和Dictionary字典

Hashtable和字典都是以键值对的形式存储,根据键名找到对应的值,键名不可以重复,使用的时候引入命名空间using System.Collections。Dictionary字典也是以键值对的形式存在,与哈希表不同的是,哈希表存储的数据类型没有限制,需要引入命名空间,字典指定两种存储的类型,不需要引入命名空间。

给大家举个例子,不知道大家没有没有用过英汉词典,英汉词典中一个英文单词后面对应着它的汉语意思,有的时候这个单词的意思可能不止有一个。比如现在我要查patient这个单词,字典那么厚,一页页的翻肯定是不可能的,这时候我们只需要在目录中找到P,在P下面对应找到patient(键)这个单词就可以了,翻到那一页后发现有两个意思(两个值),一个做形容词是有耐心的,一个做名词是病人,患者的意思。

在这里,哈希表就像一个词典一样,里面以键值对的形式进行存值,patient叫做键,查出来的中文意思叫做Value值,像英汉词典一样,尽管value值(汉语意思)不止一个,但是key键(英文单词)是唯一的,不可以重复的。

哈希表:

            Hashtable ht = new Hashtable();         //实例化一个哈希表
            ht.Add("你好", "Hello");                //向哈希表中添加一个键值
            //遍历哈希表用foreach
            foreach (var key in ht.Keys)
            {
                Console.WriteLine("key:{0}",key);
                Console.WriteLine("value:{0}",ht[key]);
            }

字典:

            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("张三", "李三");
            dic.Add("张四", "李四");

            Dictionary<string, int> dict = new Dictionary<string, int>();
            dict.Add("你好", 1);

注意

ararylist因为它存储的是object类型的数据,所以在赋值时需要将数据类型转换为object类型,也叫装箱操作,同时从arraylist当中取值时,要将object类型转换为其本身的数据类型,就是拆箱操作。但是在list<T>泛型集合中实例化时就规定了只能存储一种数据类型,所以不需要进行数据类型之间的转换,它的效率和性能都高于arraylist集合。哈希表和字典也是一样的,哈希表存储的类型是object,存值和取值时也会发生装箱和拆箱操作,所以,字典的效率和性能高于哈希表。

什么叫做装箱和拆箱,点一点下面就知道到啦~~~~

https://blog.csdn.net/wtt15100/article/details/104466564

 

C#集合与泛型 C#集合(ArrayList、List、SortedList、Hashtable、Dictionary、Stack、Queue、BitArray)与泛型类、泛型方法、泛型委托、约束泛型 阅读详情

相关推荐

C#之数据结构:Array(数组),ArrayList(动态数组),List(泛型列表),Queue(队列),Stack(栈),LinkedList(双向链表),二叉树(binary tree)等等

数据结构:Array(数组),ArrayList(动态数组),List(泛型列表),LinkedList(双向链表),Queue(队列),Stack(栈),Dictionary(字典),Hashtable(哈希表)、二叉树好记性不如烂笔头!

qq_37524903的博客 1796

C#里面的不同集合(数组、ArrayList集合、List泛型)

目录 数组(Array) 集合(ArrayList) 泛型(List) 那如何选择使用哪一个集合呢? 思维导图 数组(Array) 什么是数组? 是一个存储相同类型元素的固定大小的顺序集合。 有什么作用吗? 一次声明相同类型的数。 有哪些特点? 元素是相同类型 大小固定 元素连续存储 是引用类型(必须分配堆上的内存) 数组有哪些优点? 在内存中连续存储,因此可以快速而容易地从头到尾遍历元素,可以快速地修改元素 数组有哪些缺点呢? 创建时必须...

一起加油吧~ 3700

APP抓包-代理转发绕过反代理+Xposed绕过证书校验

而这里的牛牛不止设置了反代理还设置了证书校验,一闪而过的三个数据包就是在校验证书。而proxifier工具的转发机制获取的是网络接口出口数据,相当于是在网络接口设代理。这个时候就可以在夜神打开牛牛开始抓包了,打开牛牛可以看到proxifier有夜神流量通过。关闭代理之后牛牛就正常了,可恶的牛牛啊,这样我没办法抓包啊,怎么办啊。模拟器开启代理,burp开启监听。打开牛牛app,牛牛不在报错。牛牛app检测的是系统代理,也就是在模拟器或手机上设置的代理。再在浏览器下载两个模块,在夜神安装,用来屏蔽证书校验。

xiaoheizi的博客 7524

C#中的ArrayList类的添加、删除、查找、遍历

一、ArrayList类定义ArrayList类相当于一种高级的动态数组,它是Array类的升级版本。ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看作扩充了功能的数组,但它并不等同于数组。使用ArrayList类要添加引用:二、ArrayList类与数组的区别与数组相比,ArrayList类为开发人员提供了以下功能。☑ 数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。

wenchm的博客 1万+

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 462

深入解析fio Benchmark测试:从源码到实践

本文深入解析fio Benchmark测试工具,从入门指南到源码架构分析,详细介绍了其核心模块、关键数据结构和I/O处理机制。通过实战案例展示如何优化存储性能测试,包括内存对齐、多线程调优等技巧,帮助开发者充分利用fio进行精准的存储性能评估。

weixin_42563415的博客 198

C#Linq之求和,平均值,最大值,最小值

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace Wolfy.LinqAggregation{ class Program { static void Main(str...

anxiaomo0101的博客 2492

使用cartographer纯定位替换amcl定位

经过实际使用,发现cartographer定位对于重定位的表现比amcl好。如果机器人的起始位置离原点较远,amcl很难自行重定位到正确的位置,只能手动修改初始位置。然而cartographer定位的表现则很好,在行驶一段距离或原地旋转一段时间后能够正确重定位。

XJ_75的博客 8304

集合、泛型集合、字典、哈希表 总结

一:ArrayList集合 1.  必须声明命名空间 usingsystem.collection 2.  可用与存储不同类型的数据 3.  读取数据时大都需要里氏转换 4.  常用方法 Add:添加数据 Insert:插入数据 Remove:删除索引对应的数据 Removerage:(index,length)从某个索引开始,移除长度为length的数据

王如霜 1032

python爬取巨潮资讯网所有股票年报数据

爬虫获取巨潮资讯网数据

qq_42752524的博客 6097

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

kercii的博客 7292

第一阶段C#基础-10:集合(Arraylist,list,Dictionary等)

(1)ArrayList实现了IList,ICollection,Ienumerable,ICloneable接口,IList:List列表,主要负责集合的插入,添加,删除,取索引,判断是否包含某个项等操作。ICollection:Collection集合。主要负责集合中的项的个数,集合的复制,拷贝等。IEnumerable:Enumerable可枚举的;可数的,可枚举的。主要实现迭代器,实现此接口类都可以被循环,被遍历,被迭代,被枚举。

m0_65011747的博客 1016

CVAEGAN实现锂离子电池EIS数据增强:基于健康状态的阻抗谱生成

本文提出了一种基于CVAEGAN的锂离子电池EIS数据增强方法。该方法结合了变分自编码器和生成对抗网络的优点,能够根据指定的健康状态(SoH)生成高质量的EIS阻抗谱数据。文章详细介绍了数据预处理流程、模型架构设计(包括编码器、解码器和判别器),并提供了完整的PyTorch实现代码。通过条件生成的方式,该方法可以有效解决电池健康评估中标注数据不足的问题,为基于数据驱动的电池诊断提供更丰富的训练样本。实验结果表明,生成的EIS数据具有良好的真实性和多样性,可用于增强电池健康状态评估模型的性能。

huanghm88的专栏 493

C#进阶之路——5.C#数组与集合

C#进阶之路——5. C#数组与集合 基础: C#的数据组合分为数组和集合两种。 数组 一维数组和多维数组 集合 普通集合:泛型集合,哈希表,字典表,特殊集合等; 特殊集合:队列和堆栈等 数组 一维数组 int[...

a1093043201的专栏 212

vue2学习笔记2-老规矩,从Hello World开始,了解Vue实例和模板

想要把“Hello,World”放置在页面上,首先需要准备一个HTML的块级元素div,来承接内容。

l_q_l的专栏 1250

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【c#】ArrayList | List | Hashtable | Dictionary

ArrayList(集合) 1、使用方法 首先在原本的文件下,输入ArrayList是会报错的,因为ArrayList是命名空间Using.System.Collections下的一部分。在使用改类时必须进行引用。 ArrayList arraylist = new ArrayList();//声明对象(不需要指定它的长度) 2、方法 arraylist.Add(1);//添加新的数据 ...

刘亚男 499

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【C#】数组与集合(LIst、ArrayList、HashTable、Dictionary)

可C#视频马上就接近尾声了,C#语言是我们今后进行项目开发的最主要的最常用的语言之一。这个阶段的C#学习要求中数组\集合是要掌握的重点之一。由于我本身也还没有学的很透彻,所以有什么错误给我留言,大家共同进步!下面就先介绍集合,到目前为止我们学了4中,分别是:列表,数组列表,哈希表和字典。 集合:    集合,表示可以通过遍历每个元素来访问的一组对象(特别是foreach循环访问),别一个集合包

向阳而生 1292

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

.net中根据索引取集合中的值_C#的集合类型及使用技巧

在日常开发过程中,我们不能避免的要对批量数据处理,这时候就要用到集合。集合总体上分为线性集合和非线性集合。线性集合是指元素具有唯一的前驱和后驱的数据结构类型;非线性集合是指有多个前驱和后驱的数据结构类型,如树和图。我们这里主要讲常用的线性集合,常用的线性集合有数组、ArrayList、List、Hashtable(哈希表)、Dictionary(字典)、Stack(堆栈集合)、Queue...

weixin_34036423的博客 1030

C#泛型集合和非泛型集合的异同点及声明方式

C#泛型集合和非泛型集合的异同点及声明方式

JYWWQw的博客 2303

【Unity3D数据集合】(二)列表集合List及ListArray学习

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在日常开发中,常常会用到数据集合,那么数据集合是什么呢,数据集合也没有想象中那么复杂。 数据集合就是专门用来存储数据、检索数据,以及对数据一系列操作的类。 这些类有:ArrayList数组、List列表、Queue队列、Dictionary字典、Hashtable哈希表、.

CSDN博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1万+

泛型 集合 堆栈 队列 哈希表 字典

小例子 /* (1)创建小孩Baby类,实现ISpeak接口 (2)定义求面积的接口IArea与求体积的接口IVolumn, 定义长方体类分别实现IArea与IVolumn接口 (3)定义接口IBattle,该接口包含功能Attack(),Move(),Jump(); 定义接口IRest,该接口包含功能SitDown(),Sleep()。 定义接口IPlayer,接口IPlayer继承IBattle与IRest。 定义Soldier类实现IPlayer接口 */ //(1)

SaitamaTeacher的博客 397

C# (泛型)集合的使用以及遍历方式

使用集合组织相关数据 ArrayList是一个可动态维护长度的集合 ArrayList 每个元素对应一个索引 实现步骤: ​ 1.引入System.Collections命名空间 ​ 2.实例化ArrayList对象 添加元素: ArrayList engineers = new ArrayList(); //创建工程师对象 SE jack = new SE(); jack.Name = "王小毛” …… //添加对象到集合 engineers.Add(jack); //获取集合元素的数目

weixin_48868978的博客 2597

C#数据结构进阶—对象数组,ArrayList,List泛型集合,Hashtable,Dictionary

主要内容 ①介绍对象数组,并通过对象数组介绍类,类的构造方法,方法重载的概念。 ②介绍ArrayList,Hashtable(哈希表) List泛型集合,Dictionary 这些进阶的数据结构 ③简单来说,ArrayList是动态数组,哈希表是键和值对应的动态数组,List泛型集合是限定了类型的ArrayList。 Dictionary是限定了类型的哈希表 具体介绍 1.对象数组 对象数组,即数组元素为类的对象。 之前所学的数组元素均为单一数据类型,如果想让数组元素表示多种数据类型如定义数组储存学生信息

gcyyblcg的博客 816

泛型与非泛型的区别及详细解释

使用集合组织相关数据 1:简介 我们都知道数组是一组具有相同数据类型的数据的集合,在程序中可以存储数据,但是数组有一个缺点,即当其中的元素初始化后,要在程序中动态的给数组添加,或删除某个元素是很困难的。那么如何解决这个问题?.NET给我们提供了各种集合对象,如ArrayList和Hashtable。它们都可以很好的进行元素的动态添加,删除等操作。此外还要介绍C#中的一个重要概念——泛型。 2:Ar......

柳落青 3372

【C#进阶一】C#中的数组(Array)、集合(ArrayList,Queue,Stack, HashList)、List<T>、字典(Dictionary<K,T>)和双向链表LinkedList

一文读懂C#中的数组(Array)、集合(ArrayList,LinkedList,Queue,Stack, HashList)、泛型集合List< T >、字典(Dictionary)和双向链表(LinkedList< T>)

QHCV的博客 2165

C#-【基础6-ArrayList、List、哈希表、字典】

【内容】 1.集合添加数据(Add方法) 添加数据元素 ArrayList arrayList = new ArrayList(); arrayList.add(10); arrayList.add(“小苏”); arrayList.add(‘女’); for (int i = 0; i < arrayList.Count; i++) { Console.Writ...

冯瑞姣 419
上一篇: Arraylist集合方法总结
下一篇: C#总结(访问修饰符,静态方法和实例方法)
Grace-tt
博客等级 码龄8年 116粉丝 131原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值