Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Sao chép mảng (Cloning) trong C# với Clone()

Cloning trong C# hữu ích khi bạn muốn tạo bản sao của một mảng. Phương thức Clone() tạo một bản sao nông (shallow copy) của mảng. C# cũng cung cấp interface ICloneable.

Ví dụ: Clone mảng string

using System;

class Program
{
    static void Main()
    {
        string[] arr = { "one", "two", "three", "four", "five" };
        string[] arrCloned = arr.Clone() as string[];
        
        Console.WriteLine(string.Join(",", arr));
        Console.WriteLine(string.Join(",", arrCloned));
    }
}

Kết quả

one,two,three,four,five
one,two,three,four,five

Giải thích:

  • arr.Clone() trả về object, cần ép kiểu (cast) hoặc dùng as.
  • Đây là shallow copy: với mảng kiểu tham chiếu (class), bản sao chia sẻ cùng tham chiếu đến đối tượng. Với kiểu giá trị (int, string...), giá trị được copy độc lập.
  • Để deep copy, cần duyệt và tạo mới từng phần tử.