C# 交错数组
交错数组是数组的数组。
交错数组是一维数组。
您可以声明一个带有 int 值的交错数组 scores,如下所示:
int [][] scores;
声明一个数组不会在内存中创建数组。创建上面的数组:
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}};
其中,scores 是一个由两个整型数组组成的数组 -- scores[0] 是一个带有 3 个整数的数组,scores[1] 是一个带有 4 个整数的数组。
实例
下面的实例演示了如何使用交错数组:
实例
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();
}
}
}
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
轩总
104***4136@qq.com
交错数组与二维数组的区别,可以直观的理解为交错数组每一行的长度是可以不一样的。
如果说二维数组像是唐诗,那么交错数组就是宋词,每一句的长短没有限制。
轩总
104***4136@qq.com
CuteLad
298***8957@qq.com
C# 中的交错数组可以用 C/C++ 中的二维数组的定义来理解——数组的数组。
(借用楼上的笔记代码)
这句话定义了 a 是一个数组的数组:
然后 a 的每个元素分别是:
然后在使用的时候 a[1][2] 可以理解为 (a[1])[2],即先计算 a[1] 获得 a 的第 2 个元素(一个数组),然后从这个整型数组中获取第 3 个元素。
CuteLad
298***8957@qq.com
pzx
305***2072@qq.com
在 C# 语法中,交错数组使用两个中括号定义,但是,两个中括号很容易让人误以为它是二维数组,其实,它本质上是一维数组。
上述代码,是遍历里面数组长度不一样的方法。
pzx
305***2072@qq.com
B1aK2
www***0101415@qq.com
交错数组 foreach 遍历:
结果:
B1aK2
www***0101415@qq.com