C#初级——数组

数组

数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合

数组的定义

数组类型[] +数组名称 = value;

初始化数组

数组类型[] +数组名称 = new 数组类型[数组大小];

数组赋值

数组可以通过直接赋值,以及初始化来对数组进行赋值操作。并且呢数组可以给它赋值为空,也可以不限定数组的大小和把该数组赋值给另一个数组。

cs 复制代码
int[] arrNum1 = { 1, 2, 3, 4, 5 };
int[] arrNum2 = new int[5] { 1, 2, 3, 4, 5 };
int[] arrNum3 = null;
int[] arrNum4 = new int[] { 1, 2, 3 };
int[] arrNum5 = arrNum2;

数组元素的访问

元素是通过带索引的数组名称来访问的。

数组名称[索引(从零开始)];

数组的遍历

数组.Length: 获取数组元素的个数

数组.GetLength:获取数组元素的个数(多用于二维数组或者多维数组的遍历)

cs 复制代码
Console.WriteLine($"len = {arrNum.Length}");
//Console.WriteLine($"len = {arrNum.GetLength}");
for (int i = 0; i < arrNum.Length; i++)
{
    Console.WriteLine($"i = {arrNum[i]}");
} 

除了用 for语句循环,还可以用 foreach() 循环语句

cs 复制代码
int[] arrNum = { 1, 2, 3, 4, 5 };
for (int i in arrNum)
{
    Console.WriteLine($"arrNum = {arrNum[i]}");
} 

二维数组

在二维数组的定义上,C#与C/C++不一样,C/C++的二维数组是 **数组类型[ ][ ],**在引用上也是如此。

数组类型[,] 数组名称 = { };

cs 复制代码
 int[,] arr_Num = { { 1, 2, 3 }, { 4, 5, 6 } };

二维数组元素的访问

数组名称[ , ] ,索引之间用**,**隔开。

cs 复制代码
Console.WriteLine(arr_Num[1, 2]);

在遍历数组之前,需要对数组进行长度计算,运行以下代码,就会发现两种求数组长度的区别。在二维数组以及多维数组的遍历中使用Length方法会变得麻烦,而GetLength方法则可以将其简化。

cs 复制代码
Console.WriteLine(arr_Num.Length);          //6
Console.WriteLine(arr_Num.GetLength(0));    //2    //求行数
Console.WriteLine(arr_Num.GetLength(1));    //3    //求列数

二维数组的遍历

cs 复制代码
for (int i = 0; i < arr_Num.GetLength(0); i++)
{
    for (int j = 0; j < arr_Num.GetLength(1); j++)
    {
        Console.Write(arr_Num[i, j]);
    }
    Console.Write("\n");
}
相关推荐
相与还几秒前
godot+c#操作sqlite并加解密
sqlite·c#·godot·sqlcipher
疯狂的维修7 分钟前
关于Gateway configration studio软件配置网关
网络协议·c#·自动化·gateway
Florence2319 分钟前
GPU硬件架构和配置的理解
开发语言
李游Leo38 分钟前
JavaScript事件机制与性能优化:防抖 / 节流 / 事件委托 / Passive Event Listeners 全解析
开发语言·javascript·性能优化
JJJJ_iii1 小时前
【左程云算法09】栈的入门题目-最小栈
java·开发语言·数据结构·算法·时间复杂度
枫叶丹41 小时前
【Qt开发】显示类控件(三)-> QProgressBar
开发语言·qt
Bear on Toilet2 小时前
继承类模板:函数未在模板定义上下文中声明,只能通过实例化上下文中参数相关的查找找到
开发语言·javascript·c++·算法·继承
码猿宝宝2 小时前
浏览器中javascript时间线,从加载到执行
开发语言·javascript·ecmascript
OEC小胖胖2 小时前
App Router vs. Pages Router:我应该如何选择?
开发语言·前端·前端框架·web·next.js
max5006002 小时前
OpenSTL PredRNNv2 模型复现与自定义数据集训练
开发语言·人工智能·python·深度学习·算法