ToArray是将一个集合转化成一个数组,该数组是进行ToArray操作的一个产物 CopyTo(T[] array)是一个将集合中的数据复制到一个一个已经存在的数组中,只不过是对数组中的元素进行修改
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ToArrayAndCopyTo { class Program { static void Main(string[] args) { List<int> list = new List<int>(); list.Add(1); list.Add(20); //ToArray是将一个集合转化成一个数组 //是转化之前没有,在使用该方法的时候,内存开辟空间,创建了一个数组 int[] arr = list.ToArray(); Console.WriteLine(arr.Length); Console.WriteLine(arr.GetHashCode() +" arr的HashCode值"); //将一个结合中的数据复制到一个原有的数组中,在赋值过程中一定要确保数组的空间足够大 // 直接操作的就是原有数据的堆中的数据 将集合中的数据复制到数组中 覆盖索引相同的元素 List<int> list1 = new List<int>(); list1.Add(10); list1.CopyTo(arr); //arr中索引为1的元素并没有任何的修改 Console.WriteLine(arr[1]); Console.WriteLine(arr.GetHashCode() + " arr的HashCode值"); } } }通过结果Hashcode我们可以看出,其实就是操作的是你同一个对象