前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中数组的复制

C#中数组的复制

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:28:07
1.9K0
发布2019-01-25 15:28:07
举报

因为今天在写Java程序的时候数组复制出现了问题,所以也就查了查C#中数组的复制。

同样的C#中数组的复制也是进行的引用的传递,而不是值传递

首先看一个实例:

代码语言:javascript
复制
namespace ArrayDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array1 = { 1, 2, 3, 4, 5 };
            int[] array2 = array1;
            int[] array3 = new int[array1.Length];
            array1.CopyTo(array3, 0);
            int[] array4 = new int[array1.Length];
            Array.Copy(array1, array4, array1.Length);
            int[] array5 = (int[]) array1.Clone();

            for (int i = 0; i < array1.Length; i++)
            {
                array1[i] += 1;
            }
            for (int i = 0; i < array2.Length; i++)
            {
                Console.Write(array2[i]);
                Console.Write(" ");
            }
            Console.WriteLine();
            for (int i = 0; i < array3.Length; i++)
            {
                Console.Write(array3[i]);
                Console.Write(" ");
            }
            Console.WriteLine();
            for (int i = 0; i < array4.Length; i++)
            {
                Console.Write(array4[i]);
                Console.Write(" ");
            }
            Console.WriteLine();
            for (int i = 0; i < array5.Length; i++)
            {
                Console.Write(array5[i]);
                Console.Write(" ");
            }
        }
    }
}

运行结果如下:

可以看到,数组array2是引用传递,其值会随着array1的变化而变化,其他的数组都进行的是拷贝操作,其值不会随着array1的变化而变化。

下面说说,C#中数组复制的方法,其实上面的实例中已经有所体现。

1.利用for循环进行遍历(这个很简单,不用多说)

2.利用数组的CopyTo方法

代码语言:javascript
复制
int[] array3 = new int[array1.Length];
array1.CopyTo(array3, 0);

3.利用Array类的Copy方法

代码语言:javascript
复制
int[] array4 = new int[array1.Length];
Array.Copy(array1, array4, array1.Length);

4.利用数组的Clone方法(需要进行类型的强转)

代码语言:javascript
复制
int[] array5 = (int[]) array1.Clone();

具体参数含义参考MSDN文档

二维数组的也和Java中一样,这里不再多说。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年03月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档