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