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

等等

相关推荐
故事和你9139 分钟前
洛谷-【图论2-1】树4
开发语言·数据结构·c++·算法·动态规划·图论
故事和你9141 分钟前
洛谷-【图论2-1】树1
开发语言·数据结构·c++·算法·深度优先·动态规划·图论
段ヤシ.43 分钟前
回顾Java知识点,面试题汇总Day5(持续更新)
java·开发语言
不会C语言的男孩1 小时前
C++ SLTL编程
java·开发语言·c++
java修仙传1 小时前
Java 实习日记:从业务表关系到节点价格分析接口改造
java·开发语言·实习
qq_452396231 小时前
第十四篇:《JMeter插件扩展:自定义函数与第三方插件》
开发语言·python·jmeter
敲代码的嘎仔1 小时前
力扣高频SQL基础50题详解
开发语言·数据库·笔记·sql·算法·leetcode·后端开发
码农-阿杰1 小时前
Java 线程等待唤醒机制深度解析:synchronized、ReentrantLock、LockSupport 底层实现对比
java·开发语言·c++
赤水无泪1 小时前
Qt 全模块汇总列表
开发语言·qt
yong99901 小时前
MATLAB仿真计算电磁波回波信号的技术路径与实现指南
开发语言·matlab