Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menambah Elemen Baharu dengan Cekap pada Array Rentetan dalam C#?

Bagaimanakah Saya Boleh Menambah Elemen Baharu dengan Cekap pada Array Rentetan dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-12 09:13:43625semak imbas

How Can I Efficiently Add New Elements to a String Array in C#?

Menambahkan Elemen Baharu pada Tatasusunan Rentetan dalam C#

Mengembangkan tatasusunan rentetan dengan cekap dalam C# memerlukan pertimbangan yang teliti terhadap kaedah yang tersedia. Beberapa pendekatan wujud, masing-masing mempunyai kekuatan dan kelemahan tersendiri.

Senarai Penyelesaian

Untuk situasi yang memerlukan saiz semula dinamik, List<string> menawarkan penyelesaian yang paling mudah:

<code class="language-csharp">List<string> stringList = new List<string>();
stringList.Add("Hello");</code>

Ini menghapuskan keperluan untuk mengubah saiz tatasusunan manual dan memudahkan penambahan elemen.

Kaedah 1: Tatasusunan.Ubah Saiz

Array.Resize mengubah suai tatasusunan asal di tempatnya, meningkatkan saiznya untuk menampung elemen baharu:

<code class="language-csharp">string[] arr = { "Apple", "Banana" };
Array.Resize(ref arr, arr.Length + 1);
arr[arr.Length - 1] = "Orange";</code>

Pendekatan ini cekap untuk penambahan yang jarang berlaku tetapi boleh menjadi kurang berprestasi untuk pengubahsuaian yang kerap.

Kaedah 2: Tatasusunan.Salin

Kaedah ini mencipta tatasusunan baharu yang lebih besar, menyalin elemen sedia ada dan kemudian menambah item baharu:

<code class="language-csharp">string[] arr = { "Apple", "Banana" };
string[] newArr = new string[arr.Length + 1];
Array.Copy(arr, newArr, arr.Length);
newArr[newArr.Length - 1] = "Orange";</code>

Semasa mencipta tatasusunan baharu memperkenalkan beberapa overhed, ia mengelakkan potensi isu prestasi yang dikaitkan dengan saiz semula berulang.

Kaedah 3: LINQ's Concat

LINQ menyediakan cara ringkas untuk menambahkan elemen menggunakan Concat:

<code class="language-csharp">string[] arr = { "Apple", "Banana" };
string[] newArr = arr.Concat(new[] { "Orange" }).ToArray();</code>

Ini elegan tetapi mungkin kurang cekap sedikit daripada Array.Copy untuk tatasusunan yang sangat besar disebabkan oleh overhed operasi LINQ.

Pemilihan Pendekatan Optimum

Kaedah terbaik bergantung pada keperluan khusus anda. List<string> sesuai untuk tatasusunan dinamik dengan penambahan dan pengalihan yang kerap. Untuk tatasusunan statik dengan perubahan yang jarang berlaku, Array.Resize atau Array.Copy ialah pilihan yang sesuai. LINQ Concat menawarkan sintaks yang bersih tetapi mungkin mempunyai sedikit penalti prestasi untuk tatasusunan yang sangat besar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Elemen Baharu dengan Cekap pada Array Rentetan 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