C#,入门教程(12)——数组及数组使用的基础知识

上一篇:

C#,入门教程(11)——枚举(Enum)的基础知识和高级应用icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/123917587

数组是一种数据集合,是一组完全相同的、按顺序存放的数据。

需要记住数组的几个特征:

(1)数值都是同一数据类型的;不限于整数、实数等数值,可以非常多的种类;

(2)通过循环的方法对数组的值进行顺序读取、赋值(修改);

(3)通过数组下标(索引),访问某个指定的元素,进行读取、赋值(修改);

(4)数组元素都是连续存放的。

(5)C# 数组下标(索引)从0开始;最小的下标(索引)0对应第一个元素,最高的下标(索引)(Length-1)对应最后一个元素。

(6)数组的数据总数是 Length;二维数组是 GetLength(0) 与 GetLength(1) ...。

一、数组的定义

// 1维数组
// 定义数组
数据类型[] 数组名;// 定义数组,并初始化数组中的元素
数据类型[] 数组名 = new 数据类型[长度];
数据类型[] 数组名 = { 值1, 值2, ...};
数据类型[] 数组名 = new 数据类型[长度] { 值1,值2, ...};// 2维 或 更多维数组
// 定义数组
数据类型[,] 数组名;// 定义数组,并初始化数组中的元素
数据类型[,] 数组名 = new 数据类型[长度1,长度2];
数据类型[,] 数组名 = { {值1, 值2, ...}, {值1, 值2, ...} ... };
数据类型[,] 数组名 = new 数据类型[长度1,长度2] { {值1, 值2, ...}, {值1, 值2, ...} ... };

比如:

// 定义空的数组
int[] arrayFirst = null;// 定义并给出初值
int[] arraySecond = new int[3] { 0, 1, 2 };// 二维数组
int[,] rrayThird = new int[2,2] {{ 11, 12 },{ 21, 22 }
};

二、数组的使用与禁忌

数组的使用主要是取值计算或修改(赋值)。

/// <summary>
/// 计算数组的最大值
/// 算法:顺序比较法(谁编的名字?)
/// </summary>
/// <param name="array">数组</param>
/// <returns></returns>
public int GetMaxvalue(int[] array)
{// 先设定最大值为很小的值// int.MinValue = -2147483648int result = int.MinValue;for (int i = 0; i < array.Length; i++){// 取数组的第 i 个值参与比较if (array[i] > result){result = array[i];}}return result;
}

数组使用中一定要牢牢记住的禁忌:

(1)不要相信任何传入的数组!可能为 null;

(2)数组的下标 常常越轨!

/// <summary>
/// 计算数组的最大值
/// 算法:顺序比较法(谁编的名字?)
/// </summary>
/// <param name="array">数组</param>
/// <returns></returns>
public int GetMaxvalue(int[] array)
{// 一定不要相信!if(array == null) {throw new Exception("Null array!");}// 先设定最大值为很小的值// int.MinValue = -2147483648int result = int.MinValue;for (int i = 0; i < array.Length; i++){// 取数组的第 i 个值参与比较if (array[i] > result){result = array[i];}}return result;
}

三、数组的局限性

除了要求运行效率的纯数学或数值计算场合,实际工程中,数组的使用并不算多。

数组的特点也是限定其使用的枷锁。

工程应用中更多使用列表List、字典Dictionary、队列Quene、堆栈Stack、哈希表Hashtable等等。

建议你后面关注与熟练掌握这些数据集类型。

道路漫长...

下一篇:

C#,入门教程(13)——字符(char)及字符串(string)的基础知识icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/123928151

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/334752.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云 WindowsServer 使用之 配置 SQL Server 允许远程连接

阿里云 WindowsServer 使用之 配置 SQL Server 允许远程连接 第一步&#xff1a;安装 SQL Server 数据库 这是一个很详细的安装教程&#xff0c;可以参考一下 安装SQL Server详细教程 需要注意&#xff1a;安装实例时&#xff0c;建议在‘身份验证模式’直接选择“混合模式”…

2023年阿里云云栖大会:前沿技术发布与未来展望

在2023年的阿里云云栖大会上&#xff0c;我见证了云计算和人工智能领域的又一历史性时刻。这次大会不仅是对未来科技趋势的一次深入探索&#xff0c;更是阿里云技术实力和创新能力的集中展示。 首先&#xff0c;千亿级参数规模的大模型通义千问2.0的发布&#xff0c;无疑将人工…

C# 日期转换“陷阱”

在 C# 中&#xff0c;日期转换可能会遇到一些陷阱。以下是一些常见的陷阱和如何避免它们&#xff1a; 时区问题 日期和时间通常与时区相关&#xff0c;但在转换时可能会忽略或混淆时区信息。确保在转换日期时始终考虑到时区&#xff0c;并使用正确的时区进行转换。 DateTime…

openai API key 提示你的卡被拒绝怎么办?

openai API key 对于IP的要求非常的严格&#xff0c;以前你开腾讯云、阿里云的服务器都可以绑定、现在就不行了&#xff0c;一定要纯净的IP才可以绑定 一、排除法 1、首先确保自己的账号是没有被封的&#xff0c;可以正常使用的 2、确保银行卡是可以支持openai的银行卡 3、…

Unity3d 实现直播功能(无需sdk接入)

Unity3d 实现直播功能 需要插件 :VideoCapture 插件地址(免费的就行) 原理:客户端通过 VideoCapture 插件实现推流nodejs视频流转服务进行转发,播放器实现rtmp拉流 废话不多说,直接上 CaptureSource我选择的是屏幕录制,也可以是其他源 CaptureType选择LIVE–直播形式 LiveSt…

SpringBoot+SSM项目实战 苍穹外卖(09) day9作业

继续上一节的内容&#xff0c;本节是作业课&#xff0c;要求独立完成&#xff1a;用户端历史订单模块、商家端订单管理模块相关业务新功能开发和已有功能优化。 目录 作业要求用户端历史订单模块查询历史订单查询订单详情取消订单再来一单 商家端订单管理模块订单搜索各个状态的…

2024年1月10日 十二生肖 今日运势

小运播报&#xff1a;2024年1月10日&#xff0c;星期三&#xff0c;农历十一月廿九 &#xff08;癸卯年乙丑月癸酉日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;龙、牛、蛇 需要注意&#xff1a;鸡、狗、兔 喜神方位&#xff1a;东南方 财神方位&#xff1…

《堆排序》与《Top—k》

目录 ​编辑 前言&#xff1a; 关于《堆排序》&#xff1a; 第一步&#xff1a;建堆 第二步&#xff1a;排序 《Top—K问题》 关于Top—k问题&#xff1a; 前言&#xff1a; 我们在前面的blog中&#xff0c;对于《堆》已经有了初步的概念&#xff0c;那么接下来我们可以…

SpringCloud系列篇:核心组件之网关组件

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.网关组件是什么 二. 网关组件的…

大模型第三节课程笔记

大模型开发范式 优点&#xff1a;具有强大语言理解&#xff0c;指令跟随&#xff0c;和语言生成的能力&#xff0c;具有强大的知识储备和一定的逻辑推理能力&#xff0c;进而能作为基座模型&#xff0c;支持多元应用。 不足&#xff1a;大模型的知识时效性受限&#xff0c;大模…

在Ubuntu中检查内存的五个命令,总有一种适合你

序言 作为Ubuntu用户,尤其是管理员,我们需要检查系统使用了多少内存资源,以及有多少是可用的。我们还知道,大多数管理任务最好从Linux命令行完成,而不是从图形用户界面完成。例如,服务器通常在shell上工作,没有图形用户界面。由于控制服务器上的内存资源是最重要的,因…

人工智能图像生成的道德利弊

目录 一、我们应该关注人工智能图像吗&#xff1f;二、利用人工智能增强创造力的积极作用三、版权和剽窃问题四、对就业和劳动力动态的影响五、无意识的偏见和影响六、负责任地前行 人工智能&#xff08;AI&#xff09;发展迅速&#xff0c;尤其是近年来。据估计&#xff0c;超…