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 ------> 怪物对象

等等

相关推荐
君莫愁。14 分钟前
【Unity】检测鼠标点击位置是否有2D对象
unity·c#·游戏引擎
学步_技术22 分钟前
Python编码系列—Python工厂方法模式:构建灵活对象的秘诀
开发语言·python·工厂方法模式
Deryck_德瑞克39 分钟前
Java集合笔记
java·开发语言·笔记
MengYiKeNan44 分钟前
C++二分函数lower_bound和upper_bound的用法
开发语言·c++·算法
会发paper的学渣1 小时前
python 单例模式实现
开发语言·python·单例模式
Lingbug1 小时前
.Net日志组件之NLog的使用和配置
后端·c#·.net·.netcore
学步_技术1 小时前
Python编码系列—Python桥接模式:连接抽象与实现的桥梁
开发语言·python·桥接模式
柴华松1 小时前
GPU训练代码
开发语言·python
咩咩觉主1 小时前
Unity实战案例全解析:PVZ 植物卡片状态分析
unity·c#·游戏引擎
好兄弟给我起把狙1 小时前
[Golang] Select
开发语言·后端·golang