Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencipta Subarray Klon dengan Cekap dalam C#?

Bagaimana untuk Mencipta Subarray Klon dengan Cekap dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-18 20:43:39
asal
241 orang telah melayarinya

How to Efficiently Create Cloned Subarrays in C#?

Buat subarray klon dengan cekap dalam C#

Apabila bekerja dengan tatasusunan, selalunya perlu mencipta subarray yang mengandungi julat elemen tertentu daripada tatasusunan sedia ada. Walaupun ini boleh dicapai dengan menggelung dan menyalin elemen secara manual, terdapat kaedah yang lebih cekap dan lebih bersih.

Untuk mencipta subarray klon, kaedah sambungan boleh digunakan. Begini cara melakukannya:

public static T[] SubArray<T>(this T[] data, int index, int length)
{
    T[] result = new T[length];
    Array.Copy(data, index, result, 0, length);
    return result;
}
Salin selepas log masuk

Cara menggunakannya:

int[] data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] sub = data.SubArray(3, 4); // 包含 {3, 4, 5, 6}
Salin selepas log masuk

Untuk subbarray klon yang unsur-unsurnya adalah objek kompleks, anda boleh menggunakan bersiri untuk penyalinan dalam:

public static T[] SubArrayDeepClone<T>(this T[] data, int index, int length)
{
    T[] arrCopy = new T[length];
    Array.Copy(data, index, arrCopy, 0, length);
    using (MemoryStream ms = new MemoryStream())
    {
        var bf = new BinaryFormatter();
        bf.Serialize(ms, arrCopy);
        ms.Position = 0;
        return (T[])bf.Deserialize(ms);
    }
}
Salin selepas log masuk

Kaedah ini memerlukan objek boleh bersiri.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Subarray Klon dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan