C# 一周入门之《C#-数组》Day Three

一、数组简述&一维数组

  • 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。
  • 数组内存连续【可使用下标访问】
  • 索引是从零开始的

1. 声明数组

类型名 [ ] 数组名
[ ] 指定数组的维度

就像这样的样子,带有一个[]就是一维的

double [] balance;
int [] numbers;
string [] names;

2. 初始化数组

声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。

数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。

double[] balance = new double[10];

3. 赋值给数组

//索引赋值
string [] names = new string[3];
names[0] = "张三";

//声明时赋值
int [] numbers = {21,3435,657,86,879879,807,8};

//new对象时赋值 
int [] marks = new int[5] {312,557,9879,554,54};
//等价 int [] marks = new int[] {312,557,9879,554,54};

//可以赋值一个数组到另一数组变量中。目标和源会指向相同内存位置:
int [] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;

三、多维数组

//字符串类型的二维数组
string [,] names;

// int 变量的三维数组
int [ , , ] number;

总结,其实就是 [ ] 中的逗号数,解释了数组的维数

  • 多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。

在这里插入图片描述
访问方式和 C语言的如出一辙;
也是使用下标访问 a[i, j] 形式的;

//声明并初始化一个数组
int [, ] number = new int[3,4]
{
	{1,2,3,4},
	{5,6,7,8},
	{9,10,11,12}
};

四、交错数组

  • 交错数组是数组的数组。

  • 交错数组是一维数组。

  • 区别于二维数组,交错数组的一维子项之间的长度和性质可以完全不一样

同样的交错数组也支持一维数组内填充多维,或者交错数组,具有高度的扩展性。

int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{
   scores[i] = new int[4];
}

int[][] scores = new int[2][]
{
	new int[]{92,93,94},
	new int[]{85,66,87,88}
};

五、数组访问合集

1. for 循环

for循环的关键在于找到终止条件

//访问一维数组
int[] number = new int[]{13,324,6546,8,4646,68};

//一般我们都不会默认写数组的长度
for(int i = 0; i < number.Length;  i++)
{
	Console.Write(number[i] + " ");
}

//访问二位数组
 int[,] array = new int[3, 4]
{
	{ 13,43,54,65},
	{ 1,432,56,76},
	{ 213,45,65,6}
};

for (int i = 0; i < 3; i++)
{
	Console.WriteLine('\n');
	for(int j= 0; j < 4; j++)
	{
		Console.Write(array[i, j] + " ");
	}
}

//访问交错数组
int[][] arrays = new int[2][]
{
	new int []{ 21,3,421,412},
	new int []{ 32,432,543}
};

for (int i = 0; i < 2; i++)
{
	Console.WriteLine('\n');
	for (int j = 0; j < arrays[i].Length;  j++)
	{
		Console.Write(arrays[i][j] + " ");
	}
}

2. foreach循环

这个好处在于不需要指定被遍历对象的长度

Console.Write("foreach 循环 遍历访问数组:\n");

foreach(var i in array1)
{
	Console.Write(i + " ");
}
Console.Write("\n");

foreach(var i in array3)
{
	Console.Write("\n");
	foreach (var j in i)
	{
		Console.Write(j + " ");
	}
}

六、数组的属性及方法

  • Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。

1. 常用属性

序号属性名属性 & 描述
1IsFixedSize获取一个值,该值指示数组是否带有固定大小。
2IsReadOnly获取一个值,该值指示数组是否只读。
3Length获取一个 32 位整数,该值表示所有维度的数组中的元素总数。
4LongLength获取一个 64 位整数,该值表示所有维度的数组中的元素总数。
5Rank获取数组的秩(维度)。

2. 常用方法

序号函数名属性 & 描述
1Clear根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。
2Copy(Array, Array, Int32)从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。
3CopyTo(Array, Int32)从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。
4GetLength获取一个 32 位整数,该值表示指定维度的数组中的元素总数。
5GetLongLength获取一个 64 位整数,该值表示指定维度的数组中的元素总数。
6GetLowerBound获取数组中指定维度的下界。
7GetType获取当前实例的类型。从对象(Object)继承。
8GetUpperBound获取数组中指定维度的上界。
9GetValue(Int32)获取一维数组中指定位置的值。索引由一个 32 位整数指定。
10IndexOf(Array, Object)搜索指定的对象,返回整个一维数组中第一次出现的索引。
11Reverse(Array)逆转整个一维数组中元素的顺序。
12SetValue(Object, Int32)给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。
13Sort(Array)使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。
14ToString返回一个表示当前对象的字符串。从对象(Object)继承。
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:终极编程指南 设计师:CSDN官方博客 返回首页
评论

打赏作者

太阳风暴

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值