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

在C#中,Array,List,ArrayList,Dictionary,Hashtable,SortList,Stack的区别

Array

Array你可以理解为是所有数组的大哥

普通数组   :   特点是长度固定, 只能存储相同类型的数据
    static void Main(string[] args){//声明int[] ints;string[] strings;People[] peoples;//默认值 //int 类型是 0//string 类型是 nullint[] ints1 = { 1, 2, 3 };string[] strings1 = { "张三", "李四", "王五" };//数组里面如果存 值类型 存储就是值本身//数组里面如果存 引用类型 存储的就是内存地址//数组遍历for (int i = 0; i < ints1.Length; i++){Console.WriteLine(ints1[i]);}foreach (var s in strings1){Console.WriteLine(s);}int[] ages = { 18, 19, 2, 30, 60, 15, 14 };//Array类上的方法//1.Clear() 将数组恢复成默认值 参1:索引  参2:长度Array.Clear(ints1,1,1);//2.Copy()  复制//Array.Copy(ints1, strings1, ints1.Length);//3.Reverse() 反转Array.Reverse(ints1);//4.IndexOf() 从前往后查询参数2在参数1中首次出现的位置,有则返回索引 没有返回-1//参1:数组  参2:该数在参1出现的位置  参3:指定开始查询位置  参4:查询的个数Array.IndexOf(ages,30);//5.LastIndexOF() 从后向前查找参2数据,出现在参1数组中,有则返回索引,没有返回-1Array.LastIndexOf(ages,30);//6.Find() 从前往后查询参数2在参数1中首次出现的位置 ,有则返回值 没有返回数据默认值Array.Find(ages, x => x > 18);//7.FindLast() 从后往前查询参数2条件的值 有则返回查到的值 没有返回数据类型默认值Array.FindLast(ages, x => x <18);//8.FindIndex() 从前往后查询参数2条件的值 有则返回查到的值的索引 没有返回-1Array.FindIndex(ages, x => x ==18);//9.FindLastIndex() 从后向前查询参数2条件的值 返回的是一个数组Array.FindLastIndex(ages, x => x ==18);//10.FindAll() 查找数组中所有符合参数2条件的值 返回的是一个数组Array.FindAll(ages, x => x % 2 == 0);//11.TrueForAll() 判断数组中的数据是否全部满足参数2,如果满足返回true 只要有一个不满足 则返回falseArray.TrueForAll(ages, x => x>0);//12.Exists()  判断数组中是否有一项满足参数2的条件,只要有一项满足条件 则返回true 所有不满足则返回falseArray.Exists(ages,x=>x%2==0);//实例上的方法://1.CopyTo()//2.GetLength()  获取指定维度长度//3.SetValue()   设置值//4.GetValue()   获取值}
}
class People
{public string Name { get; set; }
}

List

//List: 集合  只能存储相同类型的数据,List的长度是不固定的
//格式: List<数据类型> 变量名 = new List<数据类型>();List<string>list=new List<string>() { "1","2","3"};
List<int> list2=new List<int>(){1,2,3};
list[0] = "1111";
Console.WriteLine(list[0]);
Console.WriteLine(list.Count);list.Sort();
list.Reverse();
list.Clear();
list.IndexOf("1");
list.Insert(0,"2");

ArrayList

  #region ArrayList//ArrayList 是一个动态数组 不固定长度和类型ArrayList list1 = new ArrayList();ArrayList array=new ArrayList() { "你好",1,2,true,new int[] {1,2,3} };//获取动态数组的长度Console.WriteLine(array.Count);array[0] = 100;Console.WriteLine(array[0]);//1.Add 向ArrayList 的最后位置添加数据list1.Add(100);//2.AddRange()int[] ints2 = {1,2,3,4,5,6};list1.AddRange(ints2);ArrayList array2 = new ArrayList() {"Hello Word!" };list1.AddRange(array2);//3.Insert() 在指定索引位置插入数组list1.Insert(1,"小丑");//4.InsertRange() 在指定的索引位置 插入集合的内容list1.InsertRange(2,ints2);//5.Clear()list1.Clear();//6.GetRange() 从集合中截取对应的数据 返回一个新的ArrayList//参1:开始索引的位置//参2:截取的个数ArrayList arr = list1.GetRange(1, 3);//7.Remove() 删除动态数组中指定的第一个值array.Remove(true);//8.RemoveAt() 删除数组中指定索引位置的数据array.RemoveAt(0);//9.RemoveRange() 删除指定范围数据 从索引1的位置开始删除 删除两个array.RemoveRange(1, 2);//10.SetRange() 将参数2集合中的数据 复制到当前动态数组中//参数1:指定从动态数组中 第几个索引开始array.SetRange(0, array2);#endregion

Dictionary

 #region Dictionary//Dictionary(字典) 使用"键"来操作//固定数据类型  长度不固定//键: 标识  在一个字典中  键是唯一的 并且不能为null//格式:  Dictionary<键的数据类型,值的数据类型>变量名=newDictionary<string,int> dic = new Dictionary<string,int>(){{"1",666 },{"2",222 },{"3",444 },{"4",555 }};//向字典中添加数据  参数1:键  参数2:值dic.Add("你好", 666);//取值Console.WriteLine(dic["1"]);//修改dic["2"] = 333;//键值对的个数Console.WriteLine(dic.Count);//判断字典中是否包含指定的key(键)和Value(值)Console.WriteLine(dic.ContainsKey("4"));Console.WriteLine(dic.ContainsValue(666));#endregion

Hashtable

 #region Hashtable//Hashtable  哈希表  表示一系列由键和值组成的数据  使用键访问Hashtable hashtable = new Hashtable(){{1,"1" },{2,"2"},{1,1 },{"2",2 },{true,false},};hashtable.Add("8", "6666");Console.WriteLine(hashtable[1]);hashtable["2"] = "你好";//Keys 获取哈希表中所有的键Console.WriteLine(hashtable.Keys);//Values 获取哈希表中所有的值Console.WriteLine(hashtable.Values);//是否拥有固定大小Console.WriteLine(hashtable.IsFixedSize);//是否只读Console.WriteLine(hashtable.IsReadOnly);#endregion

SortList

  #region SortList 排序列表SortedList sortedList = new SortedList(){{10,"这是10" },{1,"这是1"},{ 2,"这是2"}};sortedList.Add(9, "这是9");//GetByIndex()  通过索引进行访问  排序列表会自动根据键进行排序,索引为0的时候,获取的键值对是 键最小的那个键对值Console.WriteLine(sortedList.GetByIndex(0));sortedList[2] = "这个变20了";Console.WriteLine(sortedList.GetByIndex(1));//GetKey()  通过索引进行访问  获取键值对的 键Console.WriteLine(sortedList.GetKey(2));foreach (int key in sortedList.Keys){Console.WriteLine(key+"\t");}foreach (string key in sortedList.Values){Console.WriteLine(key+"\t");}Console.WriteLine(sortedList.Count);#endregion

Stack

  #region Stack 堆栈Stack<string> stack = new Stack<string>();//添加元素  推入元素stack.Push("张三");stack.Push("李四");stack.Push("王五");Console.WriteLine(stack.Count);//移除并返回在堆栈顶部的对象Console.WriteLine(stack.Pop());//返回在堆栈顶部的对象,但不移除它Console.WriteLine(stack.Peek());Queue<string> queue = new Queue<string>();queue.Enqueue("张三");queue.Enqueue("李四");queue.Enqueue("王五");queue.Dequeue();Console.WriteLine(queue.Peek());#endregion

相关文章:

在C#中,Array,List,ArrayList,Dictionary,Hashtable,SortList,Stack的区别

Array Array你可以理解为是所有数组的大哥 普通数组 : 特点是长度固定, 只能存储相同类型的数据 static void Main(string[] args){//声明int[] ints;string[] strings;People[] peoples;//默认值 //int 类型是 0//string 类型是 nullint[] ints1 { 1, 2, 3 };string[] …...

微服务知识——微服务架构的演进过程

文章目录 初始架构&#xff1a;单机架构第一次演进&#xff1a;Tomcat与数据库分开部署第二次演进&#xff1a;引入本地缓存和分布式缓存第三次演进&#xff1a;引入反向代理实现负载均衡第四次演进&#xff1a;数据库读写分离第五次演进&#xff1a;数据库按业务分库第六次演进…...

Chrome 浏览器:互联网时代的浏览利器

Chrome 浏览器&#xff1a;互联网时代的浏览利器 引言 在互联网时代&#xff0c;浏览器已经成为我们日常生活中不可或缺的工具。作为全球最受欢迎的浏览器之一&#xff0c;Chrome 浏览器凭借其出色的性能、丰富的扩展程序和简洁的界面&#xff0c;赢得了广大用户的喜爱。本文…...

深入浅出 NRM:加速你的 npm 包管理之旅

文章目录 前言一、NRM 是什么&#xff1f;二、为什么需要 NRM&#xff1f;三、NRM 的优势四、NRM 的安装与使用4.1 安装 NRM4.2 查看可用的 npm 源4.3 切换 npm 源4.4 测试 npm 源速度4.5 添加自定义 npm 源4.6 删除 npm 源 五、NRM 的进阶使用六、总结 前言 作为一名 JavaScr…...

Linux——基础命令1

$&#xff1a;普通用户 #&#xff1a;超级用户 cd 切换目录 cd 目录 &#xff08;进入目录&#xff09; cd ../ &#xff08;返回上一级目录&#xff09; cd ~ &#xff08;切换到当前用户的家目录&#xff09; cd - &#xff08;返回上次目录&#xff09; pwd 输出当前目录…...

nuxt3中使用useFetch请求刷新不返回数据或返回html结构问题解决-完整nuxt3useFetchtch请求封装

前言 如果使用nuxt3写项目&#xff0c;可以查看nuxt3实战&#xff1a;完整的 nuxt3 vue3 项目创建与useFetch请求封装&#xff0c;此篇内容有详细步骤 但在此篇内容中useFetch请求在页面有多个请求的情况下&#xff0c;或者放在客户端渲染情境下是失败的&#xff0c;所以在此篇…...

Kubernetes 中 BGP 与二层网络的较量:究竟孰轻孰重?

如果你曾搭建过Kubernetes集群,就会知道网络配置是一个很容易让人深陷其中的领域。在负载均衡器、服务通告和IP管理之间,你要同时应对许多变动的因素。对于许多配置而言,使用二层(L2)网络就完全能满足需求。但边界网关协议(BGP)—— 支撑互联网运行的技术 —— 也逐渐出…...

C中静态库和动态库的使用

2.使用尖括号包括 如果要使用尖括号包括头文件,有两种方法 1.将头文件移动到标准头文件目录,linux为/usr/local/include.windows下为C:\MinGW\include 2.编译时指定头文件目录,gcc -I/头文件目录 … 编译时-I参数就是用于指定头文件目录 3.静态库 将文件编译为静态库,可以…...

Debian 安装 Nextcloud 使用 MariaDB 数据库 + Caddy + PHP-FPM

前言 之前通过 docker在ubuntu上安装Nextcloud&#xff0c;但是现在我使用PVE安装Debian虚拟机&#xff0c;不想通过docker安装了。下面开始折腾。 安装过程 步骤 1&#xff1a;更新系统并安装必要的软件 sudo apt update && sudo apt upgrade -y sudo apt install…...

【FPGA】 MIPS 12条整数指令 【3】

实现乘除 修改框架 EX&#xff1a;实现带符号乘除法和无符号乘除法 HiLo寄存器&#xff1a;用于存放乘法和除法的运算结果。Hi、Lo为32bit寄存器。电路描述与实现RegFile思想一致 仿真 代码 DataMem.v include "define.v"; module DataMem(input wire clk,input…...

Mac 部署Ollama + OpenWebUI完全指南

文章目录 &#x1f4bb; 环境说明&#x1f6e0;️ Ollama安装配置1. 安装[Ollama](https://github.com/ollama/ollama)2. 启动Ollama3. 模型存储位置4. 配置 Ollama &#x1f310; OpenWebUI部署1. 安装Docker2. 部署[OpenWebUI](https://www.openwebui.com/)&#xff08;可视化…...

蓝桥杯小白打卡第二天

789. 数的范围 题目描述 给定一个按照升序排列的长度为 n n n 的整数数组&#xff0c;以及 q q q 个查询。 对于每个查询&#xff0c;返回一个元素 k k k 的起始位置和终止位置&#xff08;位置从 0 0 0 开始计数&#xff09;。 如果数组中不存在该元素&#xff0c;则返…...

Docker Compose:容器编排的利器

Docker Compose:容器编排的利器 引言 随着容器技术的普及,Docker成为了当今最受欢迎的容器编排工具之一。Docker Compose作为Docker生态系统中的一部分,允许用户以声明式的方式定义和运行多容器Docker应用。本文将深入探讨Docker Compose的基本概念、工作原理、使用场景以…...

springboot项目的单元测试

文章目录 依赖编写单测代码一些注意点 依赖 依赖包含了 JUnit、Mockito、Spring Test 等常用的测试工具 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><…...

JVM图文入门

往期推荐 【已解决】redisCache注解失效&#xff0c;没写cacheConfig_com.howbuy.cachemanagement.client.redisclient#incr-CSDN博客 【已解决】OSS配置问题_keyuewenhua.oss-cn-beijing.aliyuncs-CSDN博客 【排坑】云服务器docker部署前后端分离项目域名解析OSS-CSDN博客 微服…...

cursor 开发java项目教程简单上手

1.官网下载 Cursor - The AI Code Editor 下载完后注册账号&#xff0c;可以使用无限邮的方式 注册完之后 设置中文 可以选择设置为中文 Ctrl Shift X 进入设置页面输入chinese 然后重启 更改jdk跟maven仓库设置 ctrlshiftp 打开输入框后输入json&#xff0c;把下面代码…...

优化fm.jiecao.jcvideoplayer_lib中视频横竖屏自动适配原视频方案

fm.jiecao:jiecaovideoplayer:x.x.x 优化fm.jiecao.jcvideoplayer_lib中视频横竖屏自动适配原视频方案&#xff1a; 仅优化关键代码部分&#xff0c;源码&#xff1a; public void startWindowFullscreen() {Log.i(TAG, "startWindowFullscreen " " [" …...

aws(学习笔记第二十七课) 使用aws API Gateway+lambda体验REST API

aws(学习笔记第二十七课) 使用aws API Gatewaylambda体验REST API 学习内容&#xff1a; 使用aws API Gatewaylambda 1. 使用aws API Gatewaylambda 作成概要 使用api gateway定义REST API&#xff0c;之后再接收到了http request之后&#xff0c;redirect到lambda进行执行。…...

物联网的三层架构:感知层、网络层与应用层

物联网&#xff08;Internet of Things, IoT&#xff09;作为现代科技的重要组成部分&#xff0c;正在深刻改变我们的生活和工作方式。它将物理世界与数字世界无缝连接&#xff0c;通过智能设备、传感器和网络技术&#xff0c;实现数据的采集、传输和应用。物联网的架构通常分为…...

常用抓包工具tcpdump、Fiddler、Charles、Wireshark 和 Sniffmaster 下载地址

抓包大师官网下载地址 Sniff Master Download - Free TCP and HTTPS Proxy Sniffing Tool, Supports IOS Sniffing Fiddler classic官网下载地址 Download Fiddler Web Debugging Tool for Free by Telerik Fiddler Everywhere官网下载地址 The Ultimate Web Debugging Tool …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...