C# 数组上与C/C++不同的地方
二维数组
C#的二维数组更像是矩阵。
初始化
int [,] a = new int [3,4] {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};
访问
int val = a[2,3];
三维数组
int[, ,] muarr = new int[2, 2, 3]
{
{{1,2,3},{4,5,6}},
{{7,8,9},{2,3,4}}
};
交错数组
交错数组是数组的数组。
交错数组是一维数组。
个人理解: 交错数组更像是数据结构中的邻接表
初始化
int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};
实例
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
/* 一个由 5 个整型数组组成的交错数组 */
int[][] a = new int[][]{new int[]{0,0},new int[]{1,2},
new int[]{2,4},new int[]{ 3, 6 }, new int[]{ 4, 8 } };
int i, j;
/* 输出数组中每个元素的值 */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
}
}
Console.ReadKey();
}
}
}
输出:
a[0][0] = 0
a[0][1] = 0
a[1][0] = 1
a[1][1] = 2
a[2][0] = 2
a[2][1] = 4
a[3][0] = 3
a[3][1] = 6
a[4][0] = 4
a[4][1] = 8
参数数组
我们要给函数传参时,无法确定要传的参数个数之时,我们可以利用param关键字。
实例
using System;
namespace ArrayApplication
{
class ParamArray
{
public int AddElements(params int[] arr)
{
int sum = 0;
foreach (int i in arr)
{
sum += i;
}
return sum;
}
}
class TestClass
{
static void Main(string[] args)
{
ParamArray app = new ParamArray();
int sum = app.AddElements(512, 720, 250, 567, 889);
Console.WriteLine("总和是: {0}", sum);
Console.ReadKey();
}
}
}
Array类
Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。
属性
序号 | 属性 | 描述 |
---|---|---|
1 | IsFixedSize | 获取一个值,该值指示数组是否带有固定大小。 |
2 | IsReadOnly | 获取一个值,该值指示数组是否只读。 |
3 | Length | 获取一个 32 位整数,该值表示所有维度的数组中的元素总数。 |
4 | LongLength | 获取一个 64 位整数,该值表示所有维度的数组中的元素总数。 |
5 | Rank | 获取数组的秩(维度)。 |