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

C#从零开始学习笔记---第九天

又是新的一天欢迎大家继续查看我的学习笔记这两天确实状态一般今天内容我们也不记录太多主要分为两大块第一块是对之前提到过的数组进行一个复习第二块就是在记录一下集合和哈希表的一些内容。话不多说我们开始吧顺带提一嘴至于这两天为啥没继续进行类的相关内容是因为主播认为自己还是操之过急了应该先把这些存储结构记录完再开始类这一块这也是最后的铺垫了给大家带来不便还请大家谅解1. 数组数组在之前我们也有提到过也记录了一些内容这里我们就快速复习一下。1.1 数组的定义数组的第一种定义方式就是用类型 [] 数组名new 类型 [数组长度] 然后我们再通过手动赋值即可完成对数组的一个定义。int[]arraynew int [5]; array[0] 11; array[1] 22; array[2] 33; array[3] 44; array[4] 55;当然数组也有其他两种定义方式我们来看一下就不再多做解释了。//另外两种定义方式 int[] array1 new int[] { 11,22,33,44,55}; int[] array2 { 11, 22, 33, 44, 55 };1.2数组的打印数组的打印我们也有两种方式不过究其根本就还是遍历数组然后输出数组里的内容。因为这里我们直到数组的长度所以一般我们可以使用for循环来实现//数组的打印 for(int i 0; i array.Length; i) { Console.Write(array[i] ); }我们可以来看一下结果是不是和我们上面定义的数组里的内容一样第二种方式呢就是我们通过一个foreach循环直接遍历数组然后打印代码如下foreach (int i in array) { Console.Write(i ); }我们也可以看一下这个打印结果跟上面对比一下结果肯定是一样的。1.3 找到数组中的最大值并输出对于找到数组中的最大值并输出说白了就还是用遍历数组的思想我们可以设置一个变量来记录数组里的第一个值然后通过遍历数组依次让第一个值和后续的值进行比较谁大就把谁再次赋给这个变量当我们遍历结束的时候最大值就脱颖而出了。//找到数组里的最大值并输出 int[] arr { 11, 44, 22, 33, 55 }; int max arr[0]; for (int i 0; i arr.Length; i) { if (arr[i] max) { max arr[i]; } } Console.WriteLine($最大元素为{max});这里结果就不给大家展示了顺便给大家留一个作业怎么找到数组中的最小值并输出呢1.4 数组的排序升序降序数组的排序在之前也跟大家提过了这里就复习一下我们以1.3里创建的数组arr为例直接看代码。Array.Sort(arr); //升序 foreach (int i in arr) { Console.Write(i ); } Console.WriteLine(); Array.Reverse(arr);//降序 foreach (int i in arr) { Console.Write(i ); }中间加那条cw语句是为了结果大家看起来方便所以不用在意我们来看结果2.集合集合其实我们应该也不陌生但他和数学上的集合可不一样在c#里的集合更像是一个动态数组因为他没有固定的长度一般我们为了应对因为数组长度固定无法改变给我们带来的困扰的时候就要用到集合这个东西。集合的特征有三个第一是长度可变第二是可存放不同类型的元素第三是存放的元素是有序的。这三个特征我们一定要记住才行。2.1集合的创建集合的创建其实和数组差不多他也有两种创建方式第一种是不含参数的以为他的长度是可变的嘛。第二种就是含参数的也就是说我们可以给这个集合赋一个初始长度不过这个长度还是可变的。//集合的创建 ArrayList list new ArrayList(); //无参 ArrayList list1 new ArrayList(100);//含参数代表初始长度但可变2.2 在集合里存放元素在集合里存放元素一般是要调用集合的一些内置的方法常用的有两种我们来看看是什么。2.2.1 add添加// add添加 list.Add(100); list.Add(别感冒); list.Add(3.14159); Console.WriteLine(list[0]); Console.WriteLine(list[1]); Console.WriteLine(list[2]);我们可以通过上述的方式直接给我们创建的集合进行添加上面我们添加之后加了一条打印语句就是来看看我们这个集合里是否成功添加了来看一下结果当然我们也还可以使用foreach 的方式来对集合进行遍历具体操作如下foreach (var v in list) //用foreachobject obj in list也可以 { Console.WriteLine(v); }这个运行结果和上面一样我这里就不给大家展示了大家可以自己跑一下看看。2.2.2 insert插入因为我们上面说了嘛集合是一个有序的就像你去食堂打饭要排队那这个insert的插入方式就是在已排好的队列里进行插队的操作我们来看一下//insert插入 list.Insert(1, IKUN); // 其中参数1表示在第一个位置参数“IKUN”表示插入的内容 foreach (object obj in list) { Console.WriteLine(obj); }这里我们还是用的上面定义并赋值过的集合我们来看看结果显然我们成功在下标为1 的位置插入了字符串IKUN。2.3集合的删除集合的删除也有很多种我们逐一来看。2.3.1 删除全部元素---clear//clear 清除集合的全部元素 list.Clear();2.3.2 删除指定内容元素---remove//remove 删除指定内容元素 list.Remove(100); //括号里的参数是集合里值为100的内容2.3.3 删除指定位置的元素---removeat//removeat 删除指定位置的元素 list.RemoveAt(3); //括号里的参数是集合里第四个位置的内容2.3.4 批量删除元素---removerange//removerange批量删除 ArrayList list2 new ArrayList(); for (int i 1; i 11; i) { list2.Add(i); } list2.RemoveRange(2, 5); //从下位为2的位置开始删除连着删除5个元素 foreach (object obj in list2) { Console.WriteLine(obj); }2.4 集合的查找我们以2.3.4种操作完的数组为例来看一下集合的查找。//集合的查找 //判断集合中是否包含8这个元素 bool isHave list2.Contains(8); Console.WriteLine(isHave); //获取集合中某个元素的在集合里的下标 从左向右找 indexof int a list2.IndexOf(8); //1 2 8 9 10 Console.WriteLine($第一个8现在位于集合中第{a 1}个位置); list2.Add(8); //1 2 8 9 10 8 a list2.LastIndexOf(8); Console.WriteLine($最后一个8现在位于集合中第{a 1}个位置);因为集合的有序性所以集合的查找也是有顺序的第一个就是从左向右找第二个就是从右向左找上面的代码里我给大家写了注释大家可以看看自己也跑跑看看结果。3.哈希表哈希表是一种键值对集合键值对就是一键一值相互对应的。其中键是唯一的不能重复值的话是可以相同的。同时我们要注意哈希表是无序存放的。3.1哈希表的创建哈希表的创建和集合差不多也是分为有参数和无参数的具体操作如下//哈希表的创建 Hashtable ht new Hashtable(); //无参数 Hashtable ht1 new Hashtable(100); //含参数 参数表示哈希表的初始容量3.2 添加元素给哈希表添加元素只有一种方式就是用add。因为他是无序的嘛你想插队也插不了。//添加元素 ht.Add(1, 蔡徐坤); //第一个参数表示键key不能重复第二个参数的表示值value可以重复 ht.Add(2, 张凌赫); //打印 Console.WriteLine(ht[1]); Console.WriteLine(ht[2]);3.3 删除元素哈希表删除元素也分两种具体操作如下//删除元素 ht.Clear(); // 删除全部元素 ht.Remove(1);// 删除键为1的元素3.4哈希表的遍历哈希表的遍历其实和上面都一样我们还是使用foreach来进行具体操作如下//遍历访问用foreach foreach (DictionaryEntry de in ht) //无序的杂乱无章的 { Console.WriteLine(${de.Key}{de.Value}); }3.5 哈希表的查找哈希表的查找分为两种第一种是按键查找第二种是按值查找但他们的返回值都是bool类型。//哈希表的查找 1.按键查找 2.按值查找 ht1.Add(1, 张凌赫); ht1.Add(2, 蔡徐坤); ht1.Add(3, 柳智敏); ht1.Add(4, 吉赛尔); ht1.Add(5, 金冬天); ht1.Add(6, 宁艺卓); bool aa ht.ContainsKey(2); Console.WriteLine(aa); bool bb ht.Contains(6); Console.WriteLine(bb); bool cc ht.ContainsValue(张元英); Console.WriteLine(cc);ok啊今天的内容到此为止了明天我们在复习一下类明天见

相关文章:

C#从零开始学习笔记---第九天

又是新的一天,欢迎大家继续查看我的学习笔记,这两天确实状态一般,今天内容我们也不记录太多,主要分为两大块,第一块是对之前提到过的数组进行一个复习,第二块就是在记录一下集合和哈希表的一些内容。话不多…...

在 LangGraph 里做动态路由:意图分类+置信度阈值+回退链路

LangGraph 生产级动态路由实战:意图分类+置信度校准+多级回退链路全栈实现 关键词 LangGraph, 大语言模型Agent, 动态路由, 意图分类, 置信度阈值校准, 多级回退机制, 可控Agent架构 摘要 当前大模型Agent开发已从玩具级Demo走向生产级落地,静态路由的固定执行逻辑无法适…...

SQL 语句:从产生、发展到内容全景

引言:数据世界的通用语言 SQL(Structured Query Language,结构化查询语言)是当今数据领域最核心、最通用的语言。无论是数据分析师、后端工程师还是数据科学家,都离不开 SQL。它就像数据世界的“普通话”,连…...

大中小型企业数据配置年度成本估算分析

引言 在数字化转型浪潮下,数据已成为企业的核心资产。无论是初创公司、中型企业还是大型集团,合理规划数据存储、处理与分析的成本,对于优化IT预算、提升投资回报率至关重要。本文旨在为不同规模的企业提供一个清晰、可操作的年度数据配置成本…...

大中小型企业数据层配置规模分析与选型指南

引言 在数字化转型浪潮中,数据已成为企业的核心资产。无论是初创公司、中型企业还是大型集团,构建一个稳定、高效、可扩展的数据层架构都是支撑业务发展的基石。然而,不同规模的企业在数据量、业务复杂度、团队能力和预算投入上存在显著差异&…...

SQL 最常用技能详解与实战示例

引言 SQL(Structured Query Language,结构化查询语言)是与关系型数据库交互的核心工具。无论是数据分析师、后端开发工程师还是产品经理,掌握 SQL 的核心技能都至关重要。本文将系统性地介绍 SQL 中最常用、最核心的技能&#xff…...

AI辅助编程:发展现状、效率评估与未来展望

引言:AI如何重塑编程范式? 在过去的几年里,人工智能(AI)正以前所未有的速度渗透到软件开发的各个角落。从最初的代码补全工具,到如今能够理解复杂需求、生成完整函数甚至设计系统架构的智能体,AI辅助编程已经从科幻概念演变为开发者日常工作中不可或缺的“副驾驶”。它…...

Dism++:你的Windows系统优化瑞士军刀,16国语言支持的免费神器

Dism:你的Windows系统优化瑞士军刀,16国语言支持的免费神器 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾为Windows系统越来越…...

Windows热键冲突终极指南:如何用Hotkey Detective一键精准定位占用程序

Windows热键冲突终极指南:如何用Hotkey Detective一键精准定位占用程序 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detecti…...

WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南

WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在W…...

视频硬字幕提取神器:3分钟将任何视频字幕转为可编辑SRT文件

视频硬字幕提取神器:3分钟将任何视频字幕转为可编辑SRT文件 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字…...

KMS_VL_ALL_AIO终极指南:三步永久激活Windows和Office系统

KMS_VL_ALL_AIO终极指南:三步永久激活Windows和Office系统 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档突然变…...

森林-服务器存档

对于想要自建游戏服务器的玩家,云鸢互联是一个不错的专业联机平台选择。它提供稳定、低延迟且724小时在线的服务器环境,助你轻松打造专属游戏世界。平台主打极致的新手友好——全图形化控制面板,无需编写代码,也无需掌握Linux命令…...

森林The Forest - 服务器开服

对于想要自建游戏服务器的玩家,云鸢互联是一个不错的专业联机平台选择。它提供稳定、低延迟且724小时在线的服务器环境,助你轻松打造专属游戏世界。平台主打极致的新手友好——全图形化控制面板,无需编写代码,也无需掌握Linux命令…...

Agent 时代的开发者技能树重构指南

1. 标题选项 核心关键词:AI Agent、开发者转型、技能树重构、职业跃迁 《Agent 时代降临:普通开发者的技能树重构全指南,从CRUD Boy到AI应用工程师的跃迁之路》 《别再只会写CRUD了!AI Agent浪潮下,你必须掌握的新技能树体系》 《从软件开发到AI Agent开发:2024年开发者技…...

Linux】2026 年 13 款最强视频播放器(含安装命令 + 优缺点)

Linux视频播放器选择多样,如榛名、MPlayer、VLC等,功能强大、支持多格式,满足各类用户需求 一、榛名视频播放器 榛名视频播放器是一款基于Qt的开源视频播放器,提供了许多基本功能。其特点包括支持Youtube-dl、控制播放速度、丰富…...

浙大联合腾讯让AI“看懂“三维世界

这项由浙江大学、腾讯混元大模型团队、香港科技大学及深圳湾区研究院联合完成的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.15876,有兴趣深入了解的读者可通过该编号查询完整论文。当你拿起手机拍下一张客厅照片,现在…...

从零开发游戏需要学习的c#模块,第二十章(2D 敌人与战斗触发)

本节课我们要学习的内容在地图上随机生成红色敌人玩家碰到敌人后,进入战斗模式战斗胜利后敌人消失,获得分数屏幕显示敌人数量using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Syst…...

AI 时代的平台工程

两个月前,正是我 Aha moment 不断,多巴胺爆炸的时刻,每天都会记录下很多灵感和想法,准备在未来写成文章,或者开发成工具。其中有一条是这样的:AI 时代的平台工程(CLISkillMCP,可访问…...

加印了!谢谢大家,这本不讲空话的“AI落地说明书”为什么能卖爆?

想不到有一天我也会有“书竟然卖爆了”的感觉,机械工业出版社要紧急加印才能供上货的那种。特别感谢机械工业出版社的朋友们从策划到发布的全程细致高效的工作,感谢微软中国首席技术官韦青老师亲临发布会现场为我们共同的理想发声,更要感谢各…...

MongoDB 连接详解

MongoDB 连接详解 引言 MongoDB 是一款强大的 NoSQL 数据库,以其灵活的文档存储和强大的扩展性而备受青睐。在开发过程中,与 MongoDB 的连接是至关重要的第一步。本文将详细讲解 MongoDB 的连接方式、连接参数以及连接池的使用,帮助您更好地理解并使用 MongoDB。 MongoDB…...

C++学习笔记23:const 成员函数

目录 一、为什么需要 const 成员函数? 二、const 成员函数的写法 三、const 修饰的到底是什么? 四、const 成员函数不能修改成员变量 五、const 对象和普通对象的调用规则 1. const 对象只能调用 const 成员函数 2. 普通对象可以调用 const 成员函…...

Blender 3MF插件:实现CAD到3D打印的无缝转换完整指南

Blender 3MF插件:实现CAD到3D打印的无缝转换完整指南 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 在3D打印和数字制造领域,3D Manufacturing F…...

终结拟合式智能:记忆博弈心智架构重塑硅基生命进化逻辑

当前全球AGI研发赛道,正陷入一场难以破局的同质化内卷。无论是头部科技企业的超大参数模型,还是轻量化垂直AI产品,核心底层始终沿用Transformer概率拟合逻辑。这套技术体系虽然实现了人工智能的规模化落地,却从根源上锁死了AI的智…...

从概率拟合到内生心智:七层投影架构重构AGI数字生命新范式

自2017年Transformer架构问世以来,人工智能领域正式迈入大模型迭代时代。十余年间,千亿、万亿参数模型不断涌现,依托自注意力机制的概率拟合算法,AI在文本生成、多模态交互、逻辑问答等领域实现了规模化突破,彻底改变了…...

3步搞定显卡风扇异常:用FanControl彻底解决NVIDIA风扇噪音和转速问题

3步搞定显卡风扇异常:用FanControl彻底解决NVIDIA风扇噪音和转速问题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitH…...

Supervisely完整指南:5步打造AI视觉标注神器

Supervisely完整指南:5步打造AI视觉标注神器 【免费下载链接】supervisely Supervisely SDK for Python - convenient way to automate, customize and extend Supervisely Platform for your computer vision task 项目地址: https://gitcode.com/gh_mirrors/su…...

B/S架构模式在校园管理系统中的应用研究

随着校园信息化建设的不断普及,各类校园管理系统层出不穷,系统架构模式直接决定系统的使用便捷性、运维难度与适配场景。传统C/S架构即客户端/服务器架构,需要用户下载安装专属客户端,存在部署繁琐、升级困难、跨终端适配差、运维…...

MyBatis-Plus持久层框架应用技术研究

在Web应用系统开发过程中,数据持久层承担着数据库交互、数据读写、数据统计、条件查询的核心作用,持久层框架的性能与便捷性直接决定项目开发效率与系统运行稳定性。传统MyBatis框架虽能够实现数据库增删改查操作,但存在代码冗余、重复代码多…...

《技术底稿 40》别只看文件大小:一次 “反常 OOM” 背后的内存缓存重构

一、反常现象:小文件报错,大文件反倒正常业务场景需批量导入文献类 ZIP 压缩包。本次测试出现诡异问题:一个 282MB 的 ZIP 包导入时,直接抛出 java.lang.OutOfMemoryError: Java heap space 堆内存溢出。当前服务 JVM 堆内存固定配…...