Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta dan Menggunakan Kepingan Array dengan Cekap dalam C#?

Bagaimanakah Saya Boleh Mencipta dan Menggunakan Kepingan Array dengan Cekap dalam C#?

DDD
DDDasal
2025-01-14 20:23:45494semak imbas

How Can I Efficiently Create and Use Array Slices in C#?

Gunakan penghirisan tatasusunan C# dengan cekap

Dalam pengaturcaraan C#, penghirisan tatasusunan merujuk kepada operasi mengekstrak subset elemen berturut-turut daripada tatasusunan sedia ada. Ciri ini sering digunakan untuk mengasingkan bahagian tertentu data untuk pemprosesan atau analisis.

Buat kepingan tatasusunan

Untuk mencipta kepingan tatasusunan dalam C#, anda boleh menggunakan kaedah berikut:

<code class="language-csharp">byte[] byteArray = new byte[4096];
var slice = new ArraySegment<byte>(byteArray, 0, 40);</code>

Dalam contoh ini:

  • byteArray ialah tatasusunan asal dari mana kami ingin mengekstrak kepingan.
  • new ArraySegment<byte>(..., ..., ...) ialah pembina yang mencipta objek ArraySegment baharu.
  • Pembina mengambil tiga parameter:
    • byteArray: tatasusunan asal.
    • 0: Indeks permulaan hirisan.
    • 40: Bilangan unsur dalam kepingan.
Objek kepingan yang dijana oleh

mengandungi rujukan kepada byteArray asal, serta maklumat tentang indeks permulaan dan panjang kepingan. Yang penting, data tatasusunan tidak disalin.

ArraySegmen: Ciri dan Faedah

Kelas

ArraySegment menyediakan beberapa ciri dan faedah utama:

  • Ringan: ArraySegmentObjek adalah ringan dan cekap kerana ia tidak menyalin data tatasusunan asas.
  • Kebolehluasan: Kelas ArraySegment mempunyai kaedah dan jenis generik yang boleh digunakan untuk memanipulasi tatasusunan.
  • Rujukan Tatasusunan: Objek ArraySegment memegang rujukan kepada tatasusunan asal, membolehkan anda mengakses dan mengubah suai data asas secara terus.

Gunakan penghirisan tatasusunan

Selepas mencipta kepingan tatasusunan, anda boleh menggunakannya sebagai koleksi boleh lelar:

<code class="language-csharp">foreach (byte b in slice)
{
    // 对字节执行某些操作
}</code>

Ini membolehkan anda memproses elemen dalam kepingan tanpa membuat tatasusunan berasingan.

Nota: Walaupun C# tidak mempunyai sintaks khusus untuk penghirisan tatasusunan seperti Perl @bar = @foo[0..40], kelas ArraySegment menyediakan cara yang berkuasa dan cekap untuk mencapai fungsi yang sama.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta dan Menggunakan Kepingan Array dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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