ArrayList和多维数组,ArrayList多维数组
ArrayList和多维数组,ArrayList多维数组
MSDN里说:不支持将多维数组用作 ArrayList 集合中的元素。
可是自己试了一下是可以的,包括多维数组和锯齿数组
ArrayList a = new ArrayList();
// ArrayList集合接受null作为元素,并且支持重复元素.
a.Add(null);
//嵌套数组(Array of Array),又叫锯齿数组(Jagged Array),子数组可以不一样长.元素无法被直接访问
int[][] matrix = new int[2][];
matrix[0] = new int[2];
matrix[1] = new int[3];
a.Add(matrix);
//多维数组(Multi-Dimensional Array)维度长度固定
int[,] m = new int[2, 2];
a.Add(m);
for (int i = 0; i < a.Count; i++)
{
if (a[i] == null) continue;
int[][] item = a[i] as int[][];
if (item != null)
{
for (int j = 0; j < item.Length; j++)
{
for (int k = 0; k < item[j].Length; k++)
{
Console.Write(item[j][k]);
}
Console.WriteLine();
}
}
else
{
int[,] item2 = a[i] as int[,];
for (int j = 0; j < 2; j++)
{
for (int k = 0; k < 2; k++)
{
Console.Write(item2[j, k]);
}
Console.WriteLine();
}
}
关于多维数组和嵌套数组的效率问题,有人研究了JIT编译的MSIL指令并做了测试之后,得出嵌套数组其实比多维数组效率高的结论.
http://www.winu.cn/space-14160-do-blog-id-74839.html
相关文章
- 暂无相关文章
用户点评