c#多维数组,在我的理解中,一直把它当成交错数组的特殊类型。
本文为大家介绍C#多维数组初始化的一些知识,供大家学习参考。
首先,从二维数组与简单的交错数组的初始化与访问开始吧。
而交错数组也能实现差不多的内容。
多维数组存储的数据可以用交错数组替代。
交错数组是一个有高维度的特殊数组。而交错数组是数组的数组。而且数组有一个很重要的性质,
数组里面储蓄的必须是相同的类型!这对理解各种复杂数组是很重要的。
复杂的交错数组
必须这样初始化。
有一大堆new,因为交错数组是数组的数组,所以以前一直嵌套。
但是需要很多的数组类型,也可以创建无数的数组类型。
我们来看最复杂的类型。
把交错数组与多维数组混合起来。
如果能初始化下面的数组那么应该就理解的比较透彻了。
bool [][,,][][,,][]Foo;
选择一个简单点作为示例 bool [][,][]Foo;
bool[][,][] Foo = new bool[1][,][]
{
new bool[2,2][]
{
{
new bool[2] {false, true},
new bool[2] {false, true}
},
{
new bool[2] {false, true},
new bool[2] {false, true}
}
}
};
Console.WriteLine("混合数组类型");
Console.WriteLine(Foo.GetType());
Console.WriteLine(Foo[0].GetType());
Console.WriteLine(Foo[0][0,0].GetType());
Console.WriteLine(Foo[0][0, 0][0].GetType());
//结果 混合数组类型
//system.boolean[][,][]
//system.boolean[][,]
//system.boolean[]
//system.boolean
//定义交错数组:一维数组存放(二维int数组存放(一维int数组存放(四维int数组)))
//标准的C#定义描述 array of( multi-array of( array of (nulti-array)))
int[][,][][, , ,] arr = new int[10][,][][,,,];
//初始化 二维int数组存放(一维int数组存放(四维int数组))
arr[4] = new int[1, 2][][,,,];
//初始化 一维int数组存放(四维int数组)
arr[4][0, 1] = new int[3][, , ,];
//初始化 四维int数组
arr[4][0, 1][2] = new int[1, 2, 3, 4];
Console.WriteLine(arr.GetType());
Console.WriteLine(arr[4].GetType());
Console.WriteLine(arr[4][0, 1].GetType());
Console.WriteLine(arr[4][0, 1][2].GetType());
//System.Int32[,,,][][,][]
//System.Int32[,,,][][,]
//System.Int32[,,,][]
//System.Int32[,,,]
//C#编译器生成的名字与我们声明的是倒着的。
最后,说一下对数组方法的影响。尤其是 Clear();看下面的小例子。