对于数组int[] array = { 1, 2, 3, 4, 5 };C#可以用以下几种方法复制数组:
1. 直接赋值,引用同一个内存地址,根据需要使用
int[] copy = array;
2. 遍历复制,最简单、最原始的方法:
int[] copy = new int[array .Length];
for (int i = 0; i < array.Length; i++)
{
copy[i] = array[i];
}
3. 使用CopyTo()方法:需要先定义数组,长度可以不想等,可以指定开始索引
int[] copy = new int[10];
array.CopyTo(copy, 5);
4. 使用Array.Copy()静态方法:可以指定源开始索引、目标开始索引和长度,很灵活
int[] copy = new int[10];
Array.Copy(array, 0, copy, 1, 5);
5. 使用Clone()方法:Clone会创建新数组,分配内存,不宜用在需要保持高频率刷新的仿真系统。Clone()用在二维数组(int[][])是浅层拷贝,容易出问题。
int[] copy=(int[])array.Clone();
6. 使用LINQ查询:可以全部选择,也可与按照条件选择
int[] copy3 = array.Select(a => a).ToArray();
int[] copy4 = array.Where(a => a % 2 == 0).ToArray();