对C#涉及到的数据结构做了一下简单的汇总,若有遗漏,欢迎补充~~

还是以学习为目的,在此只是简单的介绍一下,希望对大家能有所帮助,能力有限为了不误导大家,不做详细深入的解析,还望见谅,非常欢迎大大们补充~~

1. 数组 Array

int[] array = new int[] { };
//  常用,长度固定,需要在初始化时指定长度

//  在内存中是连续的,遍历速度快,增加删除元素慢,即增删慢,改差快
//  增删元素,最好从数组最后一个或第一个位置操作,尽量避免从中间增删

    void ArrayTest(){//数组比较常用int[] intArr01 = new int[5];int[] intArr02 = new int[] { 1, 2, 3, 4, 5 };int[] intArr03 = new int[5] { 1, 2, 3, 4, 5 };int[] intArr04 = { 1, 2, 3, 4, 5 };//多维数组,声明赋值同上int[,] intArr05 = new int[5, 5];int[,,] intArr06 = new int[5, 5, 5];//交错数组,可以理解为元素是int[]的数组//与多维数组不同的是,子数组长度可以不同int[][] intArr07 = new int[5][];intArr07[0] = new int[1];intArr07[1] = new int[2];}

C# 数组(Array)
http://www.runoob.com/csharp/csharp-array.html
C# 多维数组
http://www.runoob.com/csharp/csharp-multi-dimensional-arrays.html
C# 交错数组
http://www.runoob.com/csharp/csharp-jagged-arrays.html
C# Array 类
http://www.runoob.com/csharp/csharp-array-class.html

2. 列表 List<T>

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

//  常用,与数组互补,长度不固定

//  在内存中不连续,每个元素内存地址分别记录,遍历速度慢,增删速度快,方便从任意插入或删除元素

常用,不多说

3. 字典 Dictionary

Dictionary<int, string> dictionary = new Dictionary<int, string>();

//  常用,采用键值对的方式,key与value一一对应,key不能为空不能重复,value任意

//  长度不固定,根据Key值查找元素,速度较快,增删改查速度都较快,不足之处就是占用内存相对较大

4. 动态数组 ArrayList

ArrayList arrayList = new ArrayList();

//  与数组类似,长度不固定,会自动修改ArrayList长度

//  只要元素类型为object,都可加入到ArrayList,但这样就是有int、float、string多种数据存在一个容器里

//  就需要装箱、拆箱操作,( int a = 10; object obj = (object)a; ),既不安全又耗性能,不推荐使用

C# 动态数组(ArrayList)

http://www.runoob.com/csharp/csharp-arraylist.html

5. 排序列表 SortedList

SortedList<int, string> sortedList = new SortedList<int, string>();

//  与字典相似,键值对的方式,根据key值自动进行排序

    void SortedListTest(){SortedList<int, string>; sorteList = new SortedList<int, string>();sorteList.Add(4, "四");sorteList.Add(1, "一");sorteList.Add(3, "三");sorteList.Add(2, "二");sorteList.Add(5, "五");foreach (var item in sorteList){Debug.Log(item.Key + "  " + item.Value);}}

C# 排序列表(SortedList)

http://www.runoob.com/csharp/csharp-sortedlist.html

6. 排序字典 SortedDictionary

SortedDictionary<int, string> sortedDictionary = new SortedDictionary<int, string>();

//  与SortedList无比相似,按照Key排序:数字>小写字母>大写字母。

异同对比:  C# Dictionary, SortedDictionary, SortedList

https://blog.csdn.net/ma_jiang/article/details/78600043

7. 双向链表 LinkedList

LinkedList<int> linkedList = new LinkedList<int>();

//  元素指向前后元素,只能从第一个依次访问

//  插入新元素,只需修改插入位置的前后元素引用即可

     void LinkedListTest(){LinkedList<int> linkedList = new LinkedList<int>();//定义第一个元素,返回节点LinkedListNode<int> firstNode = linkedList.AddFirst(1);//定义最后一个元素,返回节点LinkedListNode<int> lastNode = linkedList.AddLast(4);//在指定节点之后插入元素linkedList.AddAfter(firstNode, 2);//在指定节点之前插入元素linkedList.AddBefore(lastNode, 3);//移除元素linkedList.Remove(3);linkedList.RemoveFirst();linkedList.RemoveLast();//更多方法可查看定义,在此不一一列举}

8. 哈希表 Hashtable

Hashtable hashtable = new Hashtable();

//  与字典类似,采用键值对的方式,使用哈希算法进行无序存储,key、value均为object类型,存储是需要类型转换

    void HashtableTest(){Hashtable hashtable = new Hashtable();//hashtable.Add(object key, object value);hashtable.Add(1, "Test01");hashtable.Add("2", "Test02");hashtable.Remove(1);int count = hashtable.Count;hashtable.Clear();//更多方法可查看定义}

C# 哈希表(Hashtable)

http://www.runoob.com/csharp/csharp-hashtable.html

9. 堆栈 Stack

Stack stack = new Stack();

//先进后出,元素为object

    void StackTest(){Stack stack = new Stack();//添加元素stack.Push(1);//获取并移除元素,取最后添加的元素object obj = stack.Pop();//获取但不移除元素,取最后添加的元素obj = stack.Peek();}

C# 堆栈(Stack)

http://www.runoob.com/csharp/csharp-stack.html

10. 队列 Queue

Queue queue = new Queue();

//  先进先出,与Stack相反,元素为object

    void QueueTest(){//用法与Stack类似Queue queue = new Queue();//添加元素queue.Enqueue(1);//获取并移除元素,取最先添加的元素object obj = queue.Dequeue();//获取但不移除元素,取最先添加的元素obj = queue.Peek();}

C# 队列(Queue)

http://www.runoob.com/csharp/csharp-queue.html

11. 点阵列 BitArray

BitArray bitArray = new BitArray(10);

//  不常用,元素为bool值

C# 点阵列(BitArray)

http://www.runoob.com/csharp/csharp-bitarray.html

12. 哈希集 HashSet

HashSet<string> hashSet = new HashSet<string>();

//  不常用,无序列表

【C#】数据结构汇总相关推荐

  1. Python 刷题常用语法与数据结构汇总-2022.01.30

    [笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...

  2. java list 数据分离_Java(Android)数据结构汇总(一)-- List(下)

    简介 List接口在java.util.concurrent包下只有CopyOnWriteArrayList一个实现类,它是一个线程安全的数据结构. 实现 CopyOnWrite(写时拷贝)是为了并发 ...

  3. Python基础练习:数据结构汇总

    Python入门(中) 简介 列表 1. 列表的定义 2. 列表的创建 3. 向列表中添加元素 4. 删除列表中的元素 5. 获取列表中的元素 6. 列表的常用操作符 7. 列表的其它方法 元组 1. ...

  4. PE文件数据结构汇总

    1 IMAGE_DOS_HEADER STRUCT [M_DOS头部 共64字节] { +00 h WORD e_magic // DOS可执行文件标记 MZ(4Dh 5Ah) +02 h WORD ...

  5. 前端面试 --数据结构与算法篇

    一. 各种数据结构汇总 (内容深度只涉及到前端水平,毕竟我水平也一般) 1. 线性表  数据元素间是线性关系,数据元素在表中的位置只取决于 其序号  存在唯一的一个被称作"第一个&quo ...

  6. python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等

    NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...

  7. C++ Primer Plus-note

    txt文档转存 '*************** -exec disassemble /m main --vscode 中查看程序汇编代码 位操作,文件操作 书上跳过的 1.线程 2.volatile ...

  8. ios静态库和代码同名_使用一个代码库开始制作NativeScript iOS和Android应用程序

    ios静态库和代码同名 Users can choose whatever operating system they prefer, but every operating system use d ...

  9. Android Pie(9.0) 行为变更

    Android 9(API 级别 28)向 Android 系统引入了多项变更. 当应用在 Android 9 平台上运行时,以下行为变更将影响所有应用,无论这些应用以哪个 API 级别为目标. 所有 ...

最新文章

  1. 【IBM Tivoli Identity Manager 学习文档】15 用户管理
  2. [云炬python3玩转机器学习笔记] 3-6Numpy数组和矩阵的合并和分割
  3. 动态规划—完全背包问题
  4. ZooKeeper、Eureka谁是最好的注册中心?
  5. flume mysql hdfs_利用Flume将MySQL表数据准实时抽取到HDFS
  6. php pc_base,phpcms二次开发之base.php的桥梁作用_PHP教程
  7. 线程并发编程之线程锁
  8. LIB和DLL的区别与使用
  9. android studio配置国内,Android studio配置国内镜像源
  10. BI工具的主要功能都有哪些
  11. pytorch实现attention_Self-Attention手动推导及实现
  12. 餐饮水单打印软件_除了进销存,管家婆软件能做的很多!
  13. virtualbox突然打不开虚拟机解决方法
  14. 带你了解二进制(基础篇)
  15. 劫持 64 位静态程序 fini_array 进行 ROP 攻击
  16. Hibernate tools的hbm2ddl和hbm2java
  17. OC与swift相互调用
  18. 界面适配华为手机的虚拟按键的解决方案
  19. 有没有测试硬盘的软件,检测硬盘有什么好软件
  20. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4 主状态机详解

热门文章

  1. 没有登录进windows时有什么进程在运行
  2. 分享股票level2接口的量价趋势指标源码
  3. NLP入门概览(8) ——句法分析b:完全句法分析
  4. 为什么StringBuilder是线程不安全的
  5. nginx 通过IP访问项目
  6. python学习——绘制loss、acc学习曲线
  7. Unity_Skybox自定义插件可实现日夜更替Polyverse Skies | Low Poly
  8. PIA系列 合并式功率放大器DAVSE PIA-1080 合并式功率放大器
  9. TSINGSEE青犀视频监控技术在城市轨道交通中的应用
  10. Python math.sin() 方法