Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menambah Elemen Baharu dengan Cekap pada Array Rentetan dalam 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
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!