博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【五】数组
阅读量:5132 次
发布时间:2019-06-13

本文共 1257 字,大约阅读时间需要 4 分钟。

int [] pins;

int [,] items = new int [4,6];//初始化一个长6宽4的二维数组
items[4,6] = 99;//给i=4,j=6的位置赋值99
数组维数无限制,但是要小心内存不够用
Time [] times;
数组元素还可以是结构、枚举或者类。
最好为数组变量取一个复数名称

var names = new[]{"John","Diana","James","Francesca"};

Length是数组的属性(property)而不是方法,所以调用它时不需要使用圆括号。
记得数组编号是从0开始
可以用foreach的方法遍历整个数组如
int [] pins = {9,3,7,2};
foreach(int pin in pins)
{
Console.WriteLine(pin);
}
foreach语句声明了一个循环变量(本例是int pin)它自动获取数组中每个元素的值。
注意:foreach只能遍历所有元素,当你需要遍历部分的时候使用for;
foreach遍历的是从前往后,如果需要反向变量则需要使用for;
如果循环的主体需要知道元素的索引,而非只是值需要用for;
如果需要修改数组元素的值则必须用for,因为foreach循环的副本。

前面有说数组是引用类型。这就意味着和其他引用类型一样在复制了一个数组变量后,将获得对同一个数组实例的两个引用。

int [] pins = {9,3,7,2};
int [] alias = pins;//实则引用同一个数组实例
当修改了其中一个,另一个也被修改了

在复制数组的时候,除了我们能想到的逐个元素的赋值外,还有如下方法:

int [] pins = {9,3,7,2};
int [] copy = new int[pins.Length];
pins.CopyTo(copy,0);
//--------------------------
int [] pins = {9,3,7,2};
int [] copy = new int[pins.Length];
Array.Copy(pins,copy,copy.Length);
//--------------------------目标数组在调用Copy之前必须初始化
int [] pins = {9,3,7,2};
int [] copy = (int[])pins.Clone();
//----------这里需要说明一个,Clone方法实际返回的是一个object
//所以在调用的时候必须强制转换成具有恰当类型的一个数组
用以上方法复制的数组,创建的都是数组的一个【浅拷贝】
数组如果包含引用的话,CopyTo,Copy,Clone只是复制引用,不会复制被引用的对象,复制后都会引用同一组对象。

转载于:https://www.cnblogs.com/codetochangetheworld/p/4241823.html

你可能感兴趣的文章
ccf模板生成
查看>>
Exadata V2 Battery Replacement
查看>>
Oracle数据库案例整理-Oracle系统执行时故障-内存过少导致分配共享内存失败
查看>>
Android Gradle Task-中文
查看>>
hiho一下第91周《Events Arrangement》(前半部分)
查看>>
Activity返回值[转]
查看>>
1_dbworld
查看>>
"%Error opening tftp://255.255.255.255/network config"
查看>>
HDU 1022 Train Problem I stack 基础题
查看>>
StringUtils.htmlEncode()--html标签过滤方法实现
查看>>
萌豆工作室《用户许可协议》
查看>>
使用webstorm操作git
查看>>
SharpDevelop 如何切换设计视图和代码视图
查看>>
Hadoop切换namenode为active
查看>>
SpringCloud-服务的消费者(rest+ribbon)
查看>>
MapReduce-计数器
查看>>
javascript 中 function bind()
查看>>
format 用法及对齐
查看>>
[Lua]Lua入门教程
查看>>
Ubuntu samba 安装与配置 实现windows和虚拟机中的Ubuntu共享文件
查看>>