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

C#一维数组

一、数组核心概念数组是存储相同类型数据的容器所有数组都基于 Array 类实现。数组核心特性长度固定数组创建后大小无法修改有序存储元素按照存入顺序排列索引下标操作所有元素通过索引读写索引规则索引从 0 开始长度从 1 开始最大索引 数组长度 - 1二、数组定义与各类数组默认值定义语法数据类型[] 数组名;命名规范数组变量名一般加 s 后缀names、ages、sexsint[] ages; // 整型数组默认值0 bool[] sexs; // 布尔数组默认值false string[] names; // 字符串数组默认值null char[] chars; // 字符数组默认值\0空字符三、数组四种赋值/初始化方式// 方式1指定长度创建空数组 int ages new int[10]; // 方式2指定长度 初始化所有元素 string names new string[5] { 张三, 张三, 张三, 张三, 张三 }; // 方式3不指定长度长度由元素个数自动确定 int ages new int[] { 1, 2, 3 }; // 方式4字面量简写最常用 int[] nums { 1, 2, 3 };四、数组基础增删改查操作1. 创建固定长度数组// 创建长度为100的空字符串数组 string[] msgs new string[100];2. 单个元素赋值通过下标msgs[0] 张三; msgs[1] 搜索; // 报错索引超出数组界限 // msgs[100] ss;易错点数组长度100合法索引范围为 0~99超出范围直接报错3. 循环批量赋值借助数组名.Length获取数组总长度实现全自动批量赋值for (int i 0; i msgs.Length; i) { msgs[i] i 深度; }4. 单个元素取值// 取出最后一个元素 Console.WriteLine(msgs[99]);五、数组两种遍历方式重点1. for 循环遍历优势可以获取元素索引下标支持修改数组元素for (int i 0; i msgs.Length; i) { Console.WriteLine(msgs[i] --------); }2. foreach 循环遍历语法foreach(元素类型 变量名 in 数组)item 等价于数组中当前遍历到的msgs[i]foreach (string item in msgs) { Console.WriteLine(item ); }3. for 与 foreach 核心区别必背foreach写法简单仅用于读取数据缺点无法获取元素索引、无法修改元素位置for写法稍繁琐可以获取索引支持修改数组元素功能更全面六、object 万能数组存储不同类型数据普通数组只能存储单一类型数据object 是所有数据类型的父类可存储任意类型数据int、string、bool 等。拓展实际开发中存储多类型数据优先使用 ArrayList、List 集合不推荐频繁使用 object 数组。// 存储int、string、bool多种类型 object[] arr new object[5] { 1, 2, 3, 张三, true }; // 遍历万能数组 foreach (object item in arr) { Console.WriteLine(item); } // 直接打印数组名输出System.Object[] Console.WriteLine(arr);注意object 类型数据无法直接运算需要强制类型转换后才能操作七、数组核心易错点总结数组长度固定初始化后不能扩容、缩容索引从 0 开始最大索引 数组长度 - 1超出范围报索引越界错误值类型数组默认值为0/false引用类型数组默认值为nullforeach 仅可读不可改需要操作下标必须用 for 循环直接打印数组变量名只会输出数组类型名称不会输出元素内容八、数组标准模板// 1. 定义并初始化数组 int[] nums new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 2. 赋值 nums[3] 10; // 3. for遍历 for (int i 0; i nums.Length; i) { Console.WriteLine(nums[i]); } // 4. foreach遍历 foreach (int item in nums) { Console.WriteLine(item); }九、拓展实战随机昵称生成器一维数组随机取值// 姓氏库、名字库 string[] xings { 赵, 钱, 孙, 李, 诸葛, 夏侯, 东方, 欧阳 }; string[] names1 { 亮, 娜娜, 月初, 惇, 匡胤, 多多, 权, 世民 }; Random rnd new Random(); // 随机下标范围 0 ~ 数组长度-1 int index rnd.Next(0, xings.Length); int index1 rnd.Next(0, names1.Length); // 拼接随机昵称 Console.WriteLine(xings[index] names1[index1]);
http://www.gsyq.cn/news/1384402.html

相关文章:

  • HTW1000 烧录器/仿真器 TENX(十速)/海速芯 MCU在线/串联烧录器 单片机开发 嵌入式系统应用
  • 绘图工具 | Origin 2025b全流程下载及安装步骤实录
  • 5款小众神仙宝藏软件工具APP,实用又强大
  • 一体机电脑代工企业实力排行:五大核心玩家深度解析 - 奔跑123
  • 企业内统一API网关与Taotoken聚合平台对接方案
  • 终极Chrome画中画扩展:如何在浏览器中实现高效视频多任务处理
  • 深度解析网络设备权限管理工具:中兴光猫工厂模式与Telnet服务完整指南
  • Hindsight测试策略:单元测试、集成测试和端到端测试
  • 英语阅读_a violent volcanic eruption
  • AGC 040
  • LegacyUpdate PowerShell集成:通过COM对象自动化Windows更新管理
  • 自制低成本电感测量仪:基于ATmega328P与LC振荡原理
  • Unity战斗角色资源包深度解析:动画事件与状态机工程实践
  • 单片机毕业设计——基于STM32智能温室控制系统设计与实现 要怎么设计与实现呢(全程可免费指导)
  • 基于雷达与光敏传感器的低功耗智能窗防设备设计与实现
  • Win11Debloat深度解析:Windows系统优化与预装软件清理技术实现
  • 手把手教你用C语言http-parser库解析HTTP报文(附完整回调函数示例)
  • 自然语言处理的核心技术:这5个模型,NLP从业者必知
  • Spring Cloud Zuul RateLimit自定义扩展指南:实现自定义Key生成器与错误处理器
  • Dramatron终极指南:如何用AI快速创作专业剧本的3种简单方法
  • 13-2 IO流原理及流的分类
  • ESP32+DS3231+ILI9341构建工业级气象预报终端:低成本替代方案
  • APKToolGUI中的Baksmali/Smali工具链:Android逆向工程的终极指南
  • ImageSearch错误处理:常见问题排查与解决方案的完整清单
  • AI Agent从Demo到商用:揭秘10大工程思想,助你避开90%落地坑!
  • 深入解析WinFsp:如何构建用户态Windows文件系统的技术架构
  • 微信聊天记录取证与备份:从EnMicroMsg.db解密到完整导出实战指南
  • Pixelle-Video终极指南:如何用AI在3分钟内创作专业短视频
  • CowabungaLite安全使用指南:避免数据丢失的5个重要注意事项
  • B站缓存视频无损转换:m4s-converter让珍贵内容重获新生