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