数组是存储多个相同类型元素的固定大小的顺序集合。如果需要在数组中存储不同类型的元素,可将其类型指定为object。
数组对应的内存地址是连续的。最低的地址对应第一个元素,最高的地址对应最后一个元素。可以分一维数组和多维数组、交错数组。
数组属于对象,不是可寻址区域。
多维数组就是具有多个维度。
交错数组是数组的数组,属于一维数组。
datatype[] arrayName;
datatype[,,...] arrayName;
datatype代表数组内元素的数据类型
[]制定数组的维度,即数组内元素的多少,可缺省.中间每个逗号代表一个维度
arrayName代表数组名称
//二维数组,
int[,] array1 = new int[,]{{1,2},{3,4},{4,5}};
int[,] array2 = new int[3,2]{{1,2},{2,3},{4,5}}
//三维数组,[3,2,2]
int[,,] array4 = new int[,,]{{{3,4},{2,4}},{{2,4},{5,6}},{{9,10},{2,7}}}
int[,,] array3 = new int[2,2,3]{{{1,2,3},{3,4,5}},{{4,5,6},{2,3,4}}};
datatype[][] arrayName;
datatype代表数组内元素的数据类型
arrayName代表数组名称
//5个一维数组
int[][]source = new int[5][]
source[0] = new int[] {1,2,3,4};
source[1] = new int[]{2,3,4,5};
source[2] = new int[]{1,3,5};
source[3] = new int[]{4,5,7};
source[4] = new int[]{9,3,4};
声明一个数组不会在内存中初始化数组。当初始化数组变量时,可赋值给数组
class TestArraysClass
{
static void Main()
{
// 创建5个元素的数组
int[] array1 = new int[5];
// 创建数组,并添加元素
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
//
int[] array3 = { 1, 2, 3, 4, 5, 6 };
//二维数组
int[,] multiDimensionalArray1 = new int[2, 3];
// 创建二维数组,并填入元素
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
//创建交错数组
int[][] jaggedArray = new int[6][];
// 创建交错数组,并填入元素。
jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
}
}
在进行数组进行声明时,可以避免使用new表达式和数组类型。即隐式类型化数组。
int[] array1 = {1,2,3,4,5};
string[] array2 = {"hello","world","book"}
在尚未创建数组变量的情况下声明数组变量,但必须使用new运算符向此变量分配新数组。
int[] nums;
nums = new int[] {1,3,4,5,6,7}
sometype[] array4 = new sometype[10];
此语句的结果取决于sometype是值类型还是引用类型,如果它是值类型,该语句将创建10个元素的数组,其中每个元素的类型都为sometype,如果sometype是引用类型,该语句将创建一个10个元素的数组,其中每个元素都将初始化为空引用。在两个实例中,元素均初始化为元素类型的默认值。 有关值类型和引用类型的详细信息,
使用索引号赋值给一个单独的数组元素,或者在声明数组的同时,给数组赋值。
//使用索引号赋值
int[] nums = new nums[5];
nums[1] = 10;
//声明数组时,直接赋值
int[] nums = {1,2,3,4,5}
//多维数组赋值
int[,] array2 = new int[,]{{1,2},{2,3,4},{2,3,4,5}}
//交叉数组赋值,一维数组
int[][] nums = new int[][]
{
new int[] { 1, 3, 5, 7, 9 },
new int[] { 0, 2, 4, 6 },
new int[] { 11, 22 }
};
//交叉数组,二维数组
int[][,] jaggedArray4 = new int[3][,]
{
new int[,] { {1,3}, {5,7} },
new int[,] { {0,2}, {4,6}, {8,10} },
new int[,] { {11,22}, {99,88}, {0,9} }
};
元素访问就是遍历元素,其实就是通过索引号访问数组元素
//一维数组
int[] nums = new int[] {1,2,3,4,5};
for(int i=0;i<nums.Length;i++)
{
Console.Writeline(nums[i]);
}
Console.Readkey();
//遍历多维数组
//在想
//遍历交错数组
int[][] nums = new int[2][];
nums[0] =new int[3] { 1,2,3};
nums[1] = new int[4] { 3,4,5,6};
int sum = 0;
for (int i = 0; i < nums.Length; i++)
{
for (int j = 0; j < nums[i].Length; j++)
sum += nums[i][j];
}
Console.WriteLine(sum);
Console.ReadKey();