Meningkatkan Prestasi Penggabungan Array C#: Alternatif Unggul kepada Concat
KaedahC#'s Concat
menyediakan penyelesaian mudah untuk menyertai tatasusunan. Walau bagaimanapun, prestasinya boleh menjadi suboptimum apabila berurusan dengan tatasusunan yang besar. Untuk kecekapan yang dipertingkatkan dengan ketara dalam penggabungan tatasusunan, pertimbangkan alternatif ini:
<code class="language-csharp">int[] x = new int[] { 1, 2, 3 }; int[] y = new int[] { 4, 5 }; int[] z = new int[x.Length + y.Length]; Array.Copy(x, z, x.Length); Array.Copy(y, 0, z, x.Length, y.Length); Debug.Assert(z.SequenceEqual(new int[] { 1, 2, 3, 4, 5 }));</code>
Kaedah ini secara langsung memperuntukkan tatasusunan baharu z
dengan saiz yang mencukupi untuk memegang kedua-dua x
dan y
. Ia kemudian memanfaatkan Array.Copy
untuk memindahkan elemen x
dan y
dengan cekap ke dalam z
. Ini mengelakkan penciptaan tatasusunan perantaraan, yang membawa kepada pelaksanaan yang lebih pantas, terutamanya dengan set data yang lebih besar.
Pertimbangan Penting: Walaupun Concat
kekal sesuai untuk tatasusunan yang lebih kecil yang prestasinya tidak kritikal, pendekatan di atas menawarkan kelebihan prestasi yang besar untuk senario yang melibatkan tatasusunan besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Penggabungan Array dalam C# untuk Prestasi yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!