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

等等

相关推荐
WWJA王文举2 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
zhanghaha13142 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
qq_448011164 小时前
C语言中的动态内存分配
c语言·开发语言·php
汉字萌萌哒4 小时前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter5 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
微小冷5 小时前
海康威视相机C#二次开发环境配置
数码相机·c#·.net·海康威视·相机开发
汉字萌萌哒6 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院6 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙6 小时前
C语言:变量三属性——存储类型
c语言·开发语言
果果燕7 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++