A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄冉 中级黑马   /  2012-11-9 08:56  /  1340 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.数组的复制
数组的复制就是把已赋值的数组复制到另一个数组里面,并且改变第二个数组内容不会导致第一个数组内容的改变。
注:.net中数据有两种类型,一种是值类型另一种是引用类型。而数组是引用类型。所以下面的这个方法是不能狗完成上述功能。虽然看似我们运行出来以后a2确实能输出a1的内容,但当我们改变a1或者a2里面元素内容的时候,另一个也会发生改变。也就是说这个方法其实就是a1,a2同时指向了一个地址。
int[] a1 = { 1, 2, 3, 4, 5, 6 };
int[] a2 = a1;
方法一:for循环
int[] a1 = { 1, 2, 3, 4, 5, 6 };
int[] a2=new int[a1.Length];
for(int i=0;i<a1.Length;i++)
{
a2[i]=a1[i];
}
方法二:copyto方法
int[] a1 = { 1, 2, 3, 4, 5, 6 };
int[] a2=new int[a1.length];
a1.CopyTo(a2,0);
方法三:使用array类的静态方法Copy
int[] a1 = { 1, 2, 3, 4, 5, 6 };
int[] a2=new int[a1.length];
Array.Copy(a1, a2, a2.Length);
方法四:使用Clone方法(ICloneable接口里面的方法)
int[] a1 = { 1, 2, 3, 4, 5, 6 };
int[] a2=(int[])a1.Clone();
因为Clone()方法返回的是一个对象,所以要强制转换程适合的数据类型

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马