• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#数组Array的基础知识及二位数组和数组的数组的区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
首先了解一下C#关于数组的一些基础知识:
1、数组Array都隐士派生自System.Array抽象类,而System.Array类又继承自System.Object基类,(事实上数组都隐士实现了IEnumerable,ICollection,IList接口) 所以C#中的数组都始终是引用类型,
    变量和字段中包含的是数组的引用,而不是数组本身的元素。
2、因为是引用类型,所以数组都是在托管堆中分配的。
3、数组作为实参传递给一个方法时,实际传递的是对该数组的引用。因此被调用的方法能修改数组的元素。
4、Array.Copy提供的数组拷贝方法,是一个浅拷贝,也就说如果数组元素是引用类型,新数组将引用源数组的对象。
5、C#数组默认是0基数数组(索引从0开始),一维0基数组也称为向量,向量的性能是最佳,因为CLR使用了一些特殊的IL指令来优化向量的操作。
6、C#支持多维数组,如二维数组可以想象成一个矩阵,三维数组可以想象成一个立体空间,定义如下:
//创建一个二维数组,由double组成。
Double[,] myDoubles = new Double[10,20];
//创建一个三维数组,由String引用构成。
String[,,] myStrings = new String[4,5,10];
7、CLR支持数组的数组,即交错数组(jagged array)。
交错数组定义如下:
//创建一个含有Point数组的一维数组,即一个交错数组

//注意定义方式与多维数组的区别
Point[][] myGraphic = new  Point[3][];
//引用了含有10个Point实例的数组
myGraphic[0] = new Point[10];
//引用了含有20个Point实例的数组
myGraphic[1] = new Point[20];
//引用了含有30个Point实例的数组
myGraphic[2] = new Point[30];
//显示第一个图形。
for(int i=0;i<myGraphic[0].Length;i++)
 Console.WriteLine(myGraphic[0][i]);


二位数组和数组的数组的区别。
二维数组是按照指定的类型的一组数,比如  int [2,3]那就是说一个两行三列的矩阵,每一个元素都是一个整型数的数组。
交错数组int[2][],指的是这个数组有两个元素,每一个元素都是一个整型的数组,但是长度可以不一样,
比如
//交错数组,第一维有10个元素,第二维有8个元素。
int [][] arr= new int[2][];  
int [0][]=new int[10];  
int [1][]=new int[8];
参考:《CLR via C#》3th 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
转载:一篇java与C#的对比文章(英文)发布时间:2022-07-13
下一篇:
C#删除文件和文件夹到回收站发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap