当前位置: 首页 > article >正文

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


http://www.kler.cn/a/282136.html

相关文章:

  • JsonCpp
  • Minikube 上安装 Argo Workflow
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势
  • 什么是 C++ 内联函数?它的作用是什么?
  • 嵌入式硬件杂谈(二)-芯片输入接入0.1uf电容的本质(退耦电容)
  • LeetCode 90-子集Ⅱ
  • java图片转pdf
  • electron 两个渲染进程之间通信
  • 16. TreeMap和HashMap的区别是什么?在什么场景下应该使用TreeMap?
  • Axure 9 使用
  • 掌握MySQL就差这一个——超详细讲解Mysql集群技术(包含主从复制,半同步模式,组复制,MHA)
  • EmguCV学习笔记 C# 6.S 特别示例
  • 【CVPR‘24】BP-Net:用于深度补全的双边传播网络,新 SOTA!
  • C++笔记12•面向对象之继承•
  • 基于FPGA的SD NAND Flash数据读写实现
  • 如何使用Gogs搭建自己的git服务器
  • Android架构组件:MVVM模式的实战应用与数据绑定技巧
  • Java中post请求外部接口。其中有应对form-data参数方式处理
  • 大数据技术之Flume 企业开发案例——自定义 Sink(10)
  • Oracle发邮件时SMTP服务器配置方法与步骤?
  • vue+datav数据大屏
  • 有哪些内部知识库类似钉钉,满足企业多样化需求?
  • 【Go语言成长之路】 模糊测试
  • Qt第十八章 XML和Json格式解析
  • 数字化转型升级探索(四)
  • 驱动开发系列14 - Wayland 详解