C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

作者:mrr 时间:2021-05-27 03:55:49 

前言

在工作中经常遇到C#数组、ArrayList、List、Dictionary存取数据,但是该选择哪种类型进行存储数据,对于初学者的我一直不知道该怎么取舍。于是抽空好好看了下他们的用法和比较,在这里总结下来,后面有需要改进的再更新。

初始化

数组:


int[] buff = new int[6];

ArrayList:


ArrayList buff = new ArrayList();

List:


List<int> buff = new List<int>();

Dictionary:


Dictionary<int,string> buff = new Dictionary<int,string>;

分析比较

从上面初始化的几种类型可以看出,他们都属于引用类型。其中数组、List、Dictionary在初始化的时候需要指定其元素类型,而ArrayList不需要指定类型。而在其中只有数组在初始化时设置了其大小。

数组:在初始化时必须指定其大小和类型,他在内存中是连续存储的,所以可以看出数组的索引速度是非常快的。在确定了数组的长度和类型后,选择数组存储数据是比较好的选择。不适合插入操作。

ArrayList:在初始化的时候不需要指定其大小和类型。他可以存储不同的数据类型,但是在存取得过程中会引起装箱和拆箱,降低了性能。插入操作方便。

List:在初始化的时候必须指定其类型,但是不需要指定大小,所以他不会像ArraryList那样在存取过程中引起装箱和拆箱操作。在类型相同的情况下,List和数组的性能相当。插入操作方便。

Dictionary:在初始化的时候也必须指定其类型,而且他还需要指定一个Key,并且这个Key是唯一的。正因为这样,Dictionary的索引速度非常快。但是也因为他增加了一个Key,Dictionary占用的内存空间比其他类型要大。他是通过Key来查找元素的,元素的顺序是不定的。

 C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

注:以上所述是小编给大家介绍的C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)网站的支持!

标签:c#,数组,arraylist,list,dictionary
0
投稿

猜你喜欢

  • 利用C#代码将html样式文件与Word文档互换的方法

    2022-04-22 07:11:31
  • 详解Spring ApplicationContext加载过程

    2023-07-17 01:07:43
  • Intellij IDEA导入JAVA项目并启动(图文教程)

    2021-11-05 12:30:18
  • Android 游戏开发入门简单示例

    2023-05-02 07:29:56
  • java复制文件和java移动文件的示例分享

    2023-09-17 08:18:06
  • C#简单实现显示中文格式星期几的方法

    2021-09-08 12:27:05
  • maven 配置多个仓库的方法

    2021-06-09 03:30:24
  • SpringBoot如何使用Fastjson解析Json数据

    2023-11-25 11:55:58
  • Java中继承thread类与实现Runnable接口的比较

    2022-06-09 12:57:09
  • 新手了解java 数组基础知识

    2023-10-22 03:19:12
  • javascript 在线文本编辑器实现代码

    2023-11-24 23:07:24
  • 解决异常FileNotFoundException:class path resource找不到资源文件的问题

    2021-12-26 18:24:14
  • Android布局自定义Shap圆形ImageView可以单独设置背景与图片

    2023-02-23 15:15:35
  • 实例分析java对象的序列化和反序列化

    2022-07-11 00:22:41
  • Java分层概念详解

    2021-12-12 06:29:18
  • springboot2+es7使用RestHighLevelClient的示例代码

    2023-11-25 01:23:18
  • c#可空类型的作用说明

    2021-12-24 18:00:49
  • C#将PPT文件转换成PDF文件

    2022-09-08 20:33:21
  • 关于Feign调用服务Headers传参问题

    2022-10-31 01:48:24
  • MyBatis-Plus 如何单元测试的实现

    2022-03-02 19:45:08
  • asp之家 软件编程 m.aspxhome.com