C#学习笔记——(8)数组
程序员文章站
2022-07-16 09:13:07
...
数组简介
概念——数组是按顺序排列的一组相同类型变量的集合。
数组的最小下标为0。
数组是引用类型,集成.NET类库中名为System.Array的公共基类。
一维数组
声明和创建一维数组
方法一:
数组类型[] 数组名 = new 数组类型[数组长度]
//创建含有5个元素的一维整型数组array1
int[] array1 = new int[5];
方法二:
先声明一个数组名,再分配空间(也可以直接关联到一个已经存在的空间上)
int[] array1;
array1 = new int[5]; //分配空间
array1 = array2; //直接关联到一个已经存在的空间上
给数组赋初值
方法一:
数组类型[] 数组名 = new 数组类型[数组长度]{初始化列表};
//注意初始值的个数要与数组长度一致
int[] array1 = new int[5]{1,2,3,4,5};
方法二:
//数组的长度可以是变量
int[] array1 = new int[]{1,2,3,4,5};
int[] array1 = {1,2,3,4,5};
数组元素的访问
数组名[下标] //下标允许是整型常数、整型变量或整数表达式
array1[0] = 23;
二维数组
二维数组的声明
数组类型[,] 数组名 = new 数组类型[m,n] //m,n可以是常量或变量表达式
二维数组的初始化
三种写法
int[,] score = new int[3, 5] { { 86, 92, 78, 99, 87 }, { 78, 87, 88, 90, 77 }, { 79, 80, 87, 67, 89 } };
int[,] score = new int[, ] { { 86, 92, 78, 99, 87 }, { 78, 87, 88, 90, 77 }, { 79, 80, 87, 67, 89 } };
int[,] score = { { 86, 92, 78, 99, 87 }, { 78, 87, 88, 90, 77 }, { 79, 80, 87, 67, 89 } };
二维数组的引用
score[i,j] = 90;
例子
实现功能:使用二维数组完成3*4的矩阵的加法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace array
{
class Program
{
static void Main(string[] args)
{
//实现功能:使用二维数组完成3*4的矩阵的加法
//定义矩阵的行和列数
const int M = 3;
const int N = 4;
//两个矩阵
int[,] a = new int[M, N] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
int[,] b = new int[,] { { 1, 4, 7, 11 }, { 2, 5, 8, 12 }, { 3, 6, 9, 13 } };
int[,] c = new int[M, N]; //矩阵和存入新的数组
for(int i=0;i<M;i++) //两个矩阵相加
{
for (int j = 0; j < N; j++)
c[i, j] = a[i, j] + b[i, j];
}
for(int i=0;i<M;i++) //输出矩阵
{
for (int j = 0; j < N; j++)
Console.Write("{0,4}", c[i, j]); //输出0,宽度为一行4个
Console.WriteLine();
}
}
}
}
交错数组
概念
交错数组是元素为数组的数组,交错数组元素的长度可以不同。至少是二维的。
交错数组的声明
int[][] jagArray = new int[3][]; //声明一个三行的交错数组
jagArray[0] = new int[5]; //分别对每一行分配空间
jagArray[1] = new int[4];
jagArray[2] = new int[2];
交错数组的初始化
int[][] jagArray = new int[3][]; //交错数组声明
jagArray[0] = new int[] { 1, 3, 5, 7, 9 };
jagArray[1] = new int[] { 0, 2, 4, 6 };
jagArray[2] = new int[] { 11, 22 };