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");
}
相关推荐
Ronin30525 分钟前
【C++】类型转换
开发语言·c++
mrbone1141 分钟前
Git-git worktree的使用
开发语言·c++·git·cmake·worktree·gitab
浪裡遊1 小时前
Sass详解:功能特性、常用方法与最佳实践
开发语言·前端·javascript·css·vue.js·rust·sass
真实的菜1 小时前
JVM类加载系统详解:深入理解Java类的生命周期
java·开发语言·jvm
代码讲故事1 小时前
多种方法实现golang中实现对http的响应内容生成图片
开发语言·chrome·http·golang·图片·快照·截图
虾球xz2 小时前
CppCon 2018 学习:EFFECTIVE REPLACEMENT OF DYNAMIC POLYMORPHISM WITH std::variant
开发语言·c++·学习
Allen_LVyingbo2 小时前
Python常用医疗AI库以及案例解析(2025年版、上)
开发语言·人工智能·python·学习·健康医疗
小哈龙2 小时前
裸仓库 + Git Bash 搭建 本地 Git 服务端与客户端
开发语言·git·bash
唐青枫2 小时前
C#.NET log4net 详解
c#·.net
G探险者2 小时前
《如何在 Spring 中实现 MQ 消息的自动重连:监听与发送双通道策略》
java·开发语言·rpc