C# 数组,List,Stack,Dictionary,Queue,LinkedList 如何选择

回顾数据容器

变量

无符号

byte ushort uint ulong

有符号

sbyte short int long

浮点数

float double decimal

特殊

char bool string

复杂数据容器

枚举 enum

结构体 struct

数组(一维、二维、交错) [] [,] [][]

数据集合

using System.Collections;

ArrayList object数据列表

Stack 栈 先进后出

Queue 队列 先进先出

Hashtable 哈希表 键值对

泛型数据集合

using System.Collections.Generic;

List 列表 泛型列表

Dictionary 字典 泛型哈希表

LinkedList 双向链表

Statck 泛型栈

Queue 泛型队列

如何选择 (主要看自己之后做的时候多学多看 悟)

普通线性表:

数组,List,LinkedList

数组:固定的不变的一组数据

List: 经常改变,经常通过下标查找

LinkedList:不确定长度的,经常临时插入改变,查找不多

先进后出:

Stack

对于一些可以利用先进后出存储特点的逻辑

比如:UI面板显隐规则

先进先出:

Queue

对于一些可以利用先进先出存储特点的逻辑

比如:消息队列,有了就往里放,然后慢慢依次处理

键值对:

Dictionary

需要频繁查找的,有对应关系的数据

比如一些数据存储 id对应数据内容

道具ID ------> 道具信息

怪物ID ------> 怪物对象

等等

相关推荐
二川bro10 分钟前
第38节:WebGL 2.0与Three.js新特性
开发语言·javascript·webgl
MediaTea23 分钟前
Python 第三方库:Markdown(将文本渲染为 HTML)
开发语言·前端·python·html
Halo_tjn30 分钟前
Java 基于分支和循环结构的专项实验
java·开发语言·计算机
洛_尘41 分钟前
数据结构--9:反射、枚举以及lambda表达式(了解即可)
java·开发语言·数据结构
青衫码上行1 小时前
【Java Web学习 | 第12篇】JavaScript(6)DOM
java·开发语言·前端·javascript·学习
杜子不疼.1 小时前
【C++】 set/multiset底层原理与逻辑详解
java·开发语言·c++
Macbethad1 小时前
如何用WPF做工控设置界面
java·开发语言·wpf
csdn_aspnet1 小时前
WPF 做一个简单的电子签名板(一)
c#·wpf
玖笙&1 小时前
✨WPF编程进阶【7.2】:动画类型(附源码)
c++·c#·wpf·visual studio
大炮走火1 小时前
iOS在制作framework时,oc与swift混编的流程及坑点!
开发语言·ios·swift