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

等等

相关推荐
全干engineer20 小时前
Web3-Web3.js核心操作:Metamask、合约调用、事件订阅全指南
开发语言·javascript·web3·区块链·智能合约
刘一说20 小时前
资深Java工程师的面试题目(六)数据存储
java·开发语言·数据库·面试·性能优化
江沉晚呤时20 小时前
EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库
java·开发语言·数据库
火鸟221 小时前
Rust 通用代码生成器:莲花,红莲尝鲜版三十六,哑数据模式图片初始化功能介绍
开发语言·后端·rust·通用代码生成器·莲花·红莲·图片初始化功能
啾啾Fun21 小时前
Python类型处理与推导式
开发语言·windows·python
csdn_aspnet1 天前
C# .NET Core 源代码生成器(dotnet source generators)
c#·.netcore
时光追逐者1 天前
C#/.NET/.NET Core技术前沿周刊 | 第 42 期(2025年6.9-6.15)
c#·.net·.netcore
Watermelo6171 天前
内存泄漏到底是个什么东西?如何避免内存泄漏
开发语言·前端·javascript·数据结构·缓存·性能优化·闭包
z2014z1 天前
第3章 C#编程概述 笔记
笔记·c#
葡萄城技术团队2 天前
基于 C# 和 .NET 的 Spread.NET 数据处理实战
c#