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
C# 数组
轩总
104***4136@qq.com
交错数组与二维数组的区别,可以直观的理解为交错数组每一行的长度是可以不一样的。
如果说二维数组像是唐诗,那么交错数组就是宋词,每一句的长短没有限制。
// 声明一个交错数组 a,a 中有三个元素,分别是 a[0],a[1],a[2] 每个元素都是一个数组 int[][] a = new int[3][]; //以下是声明交错数组的每一个元素的,每个数组的长度可以不同 a[0] = new int[] { 1,2,3 }; a[1] = new int[] { 4,5,6,7,8 }; a[2] = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };轩总
104***4136@qq.com
CuteLad
298***8957@qq.com
C# 中的交错数组可以用 C/C++ 中的二维数组的定义来理解——数组的数组。
(借用楼上的笔记代码)
这句话定义了 a 是一个数组的数组:
然后 a 的每个元素分别是:
a[0] = new int[] { 1,2,3 }; a[1] = new int[] { 4,5,6,7,8 }; a[2] = new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 };然后在使用的时候 a[1][2] 可以理解为 (a[1])[2],即先计算 a[1] 获得 a 的第 2 个元素(一个数组),然后从这个整型数组中获取第 3 个元素。
CuteLad
298***8957@qq.com
pzx
305***2072@qq.com
在 C# 语法中,交错数组使用两个中括号定义,但是,两个中括号很容易让人误以为它是二维数组,其实,它本质上是一维数组。
//交错数组 int[][] num8 = new int[3][] { new int[] { 1, 2 }, new int[] { 2, 3, 1, 1 }, new int[] { 1, 4, 5 } }; for (int i = 0; i < num8.Length; i++) { for (int j = 0; j < num8[i].Length; j++) { Console.WriteLine("num8[{0},{1}]={2}", i, j, num8[i][j]); } Console.WriteLine(" "); } Console.WriteLine(num8.Rank);// 函数输出1,表示是一维数组。上述代码,是遍历里面数组长度不一样的方法。
pzx
305***2072@qq.com
B1aK2
www***0101415@qq.com
交错数组 foreach 遍历:
using System; namespace CalculatorApplication { class NumberManipulator { static void Main(string[] args) { int[][] scores = new int[2][] { new int[] { 92, 93, 94 }, new int[] { 85, 66, 87, 88 } }; foreach(int[] tempArr in scores) { foreach(int n in tempArr) { Console.WriteLine(n); } } } } }结果:
B1aK2
www***0101415@qq.com