Gif*_*guy 2 .net c# arrays multidimensional-array
例如:一组不同长度的整数数组.
在C++中,我们习惯于这样做:
int * * TwoDimAry = new int * [n] ;
for ( int i ( 0 ) ; i < n ; i ++ )
{
TwoDimAry[i] = new int [i + n] ;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果n == 3那么结果将是一个由三个整数数组指针组成的数组,并且看起来像这样:
http://img263.imageshack.us/img263/4149/multidimarray.png
当然,.NET数组是托管集合,因此您不必处理手动分配/删除.
但声明:
int[][] TwoDimAry ;
Run Code Online (Sandbox Code Playgroud)
...在C#中似乎没有相同的效果 - 即,您必须同时保留所有子数组,并且它们必须具有相同的长度.
我需要我的子数组彼此独立,因为它们是在本机C++中.
使用托管集合实现此目的的最佳方法是什么?我应该注意哪些缺点?
像C++一样,你需要初始化每个子数组int[][].
但是,它们不需要具有相同的长度.(这就是为什么它被称为锯齿状阵列)
例如:
int[][] jagged1 = new int[][] { new int[1], new int[2], new int[3] };
Run Code Online (Sandbox Code Playgroud)
您的C++代码可以直接转换为C#:
int[][] TwoDimAry = new int[n][];
for(int i = 0; i < n; i++) {
TwoDimAry[i] = new int[i + n];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
738 次 |
| 最近记录: |