免费资源网 – https://freexyz.cn/

目录
  • System.Array.CopyTo() 方法:
    • 示例:
  • System.Array.Clone() 方法:
    • 示例:
  • 总结:

    System.Array.CopyTo() 和 System.Array.Clone() 是用于数组复制的两种不同方法,它们在实现和用途上有一些区别。

    System.Array.CopyTo() 方法:

    CopyTo() 方法用于将数组的元素复制到另一个数组。它是 Array 类的实例方法,可以用于复制一个数组的内容到另一个数组,前提是目标数组具有足够的空间来容纳源数组的元素。

    示例:

    using System;
    
    class Program
    {
        static void Main()
        {
            int[] sourceArray = { 1, 2, 3, 4, 5 };
            int[] destinationArray = new int[5];
    
            // 使用 CopyTo() 方法复制数组
            sourceArray.CopyTo(destinationArray, 0);
    
            // 输出目标数组
            Console.WriteLine("Destination Array:");
            foreach (int num in destinationArray)
            {
                Console.Write(num + " ");
            }
        }
    }
    

    System.Array.Clone() 方法:

    Clone() 方法用于创建当前数组的浅表副本。它是 Array 类的实例方法,返回一个新数组,该数组是原始数组的浅表副本。浅表副本意味着数组元素本身被复制,但如果数组包含引用类型的元素(如对象),则引用仍然指向相同的对象。

    示例:

    using System;
    
    class Program
    {
        static void Main()
        {
            int[] sourceArray = { 1, 2, 3, 4, 5 };
    
            // 使用 Clone() 方法创建数组的浅表副本
            int[] clonedArray = (int[])sourceArray.Clone();
    
            // 修改源数组的一个元素
            sourceArray[0] = 10;
    
            // 输出两个数组
            Console.WriteLine("Source Array:");
            foreach (int num in sourceArray)
            {
                Console.Write(num + " ");
            }
    
            Console.WriteLine("\nCloned Array:");
            foreach (int num in clonedArray)
            {
                Console.Write(num + " ");
            }
        }
    }

    二者都是用于复制数组的方法,但它们有一些区别:

    System.Array.CopyTo():

    方法签名:void CopyTo(Array array, int index)

    功能:将当前数组的所有元素复制到另一个数组中。

    参数:

    • array:目标数组,即要将元素复制到的数组。
    • index:目标数组中的起始索引,从该索引开始复制元素。

    返回值:无

    注意事项:

    目标数组必须具有足够的空间来容纳当前数组的所有元素,否则会引发异常。

    复制操作会从当前数组的第一个元素开始,按顺序复制到目标数组中。

    System.Array.Clone():

    • 方法签名:object Clone()
    • 功能:创建当前数组的浅表副本。
    • 参数:无

    返回值:返回一个新的数组对象,该对象是当前数组的浅表副本。

    注意事项:

    • 浅表副本意味着新数组和原始数组共享相同的元素对象。如果修改其中一个数组中的元素对象,另一个数组中的相应元素也会受到影响。、
    • 新数组的类型与原始数组的类型相同。

    总结:

    • System.Array.CopyTo() 方法将当前数组的所有元素复制到另一个数组中,并且可以指定目标数组的起始索引。
    • System.Array.Clone() 方法创建当前数组的浅表副本,返回一个新的数组对象。

    免费资源网 – https://freexyz.cn/

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。