C# ArrayList - Clone() 方法
C# ArrayList 的 Clone() 方法用于创建 ArrayList 的浅拷贝。
集合的浅拷贝仅复制集合中的元素(无论它们是引用类型还是值类型),但不会复制引用所指向的对象。
语法
以下是 C# ArrayList 的 Clone() 方法的语法 -
public virtual object Clone ();
参数
此方法不接受任何参数。
返回值
此方法返回 ArrayList 的浅拷贝。
示例 1:ArrayList 的浅拷贝
以下是使用 Clone() 方法创建 ArrayList 浅拷贝的基本示例 -
using System;
using System.Collections;
class Program
{
static void Main()
{
ArrayList arrayList = new ArrayList { "A", "B", "C", "D" };
Console.WriteLine("Before Clone: ");
foreach (var item in arrayList)
{
Console.Write(item + " ");
}
ArrayList newArrayList = (ArrayList)arrayList.Clone();
Console.WriteLine("After Clone:");
foreach (var item in newArrayList)
{
Console.Write(item + " ");
}
}
}
输出
以下是输出 -
Before Clone: A B C D After Clone: A B C D
示例 2:克隆自定义 Person 对象的 ArrayList
我们来看另一个示例,这里我们克隆一个自定义 Person 对象的 ArrayList。每个 Person 对象都由 Name 和 Age 定义。Clone() 方法用于创建 ArrayList 的浅拷贝 -
using System;
using System.Collections;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public override string ToString()
{
return $"Name: {Name}, Age: {Age}";
}
}
class Program
{
static void Main()
{
ArrayList personList = new ArrayList
{
new Person("Akash", 30),
new Person("Rahul", 25),
new Person("Sudeep", 28)
};
Console.WriteLine("Before Clone: ");
foreach (var person in personList)
{
Console.Write(person + " | ");
}
ArrayList clonedPersonList = (ArrayList)personList.Clone();
Console.WriteLine("After Clone:");
foreach (var person in clonedPersonList)
{
Console.Write(person + " | ");
}
}
}
输出
以下是输出 -
Before Clone: Name: Akash, Age: 30 | Name: Rahul, Age: 25 | Name: Sudeep, Age: 28 | After Clone: Name: Akash, Age: 30 | Name: Rahul, Age: 25 | Name: Sudeep, Age: 28 |
示例 3:创建 ArrayList 的浅拷贝
以下示例创建了一个整数类型的 ArrayList。然后,我们使用 clone() 方法创建该 ArrayList 的浅拷贝,并显示原始列表和克隆列表的元素 -
using System;
using System.Collections;
class Program
{
static void Main()
{
ArrayList intList = new ArrayList { 1, 2, 3, 4, 5 };
Console.WriteLine("Before Clone: ");
foreach (var number in intList)
{
Console.Write(number + " ");
}
ArrayList clonedIntList = (ArrayList)intList.Clone();
Console.WriteLine("After Clone:");
foreach (var number in clonedIntList)
{
Console.Write(number + " ");
}
}
}
输出
以下是输出 -
Before Clone: 1 2 3 4 5 After Clone: 1 2 3 4 5

csharp_arraylist.html