Mengalih Keluar Elemen daripada Tatasusunan .NET dengan Cekap
Tidak seperti tatasusunan dinamik seperti List<T>
, tatasusunan .NET standard tidak mempunyai kaedah Remove
langsung. Artikel ini meneroka strategi berkesan untuk mengalih keluar elemen daripada tatasusunan biasa.
Memanfaatkan LINQ untuk Penyingkiran Elemen
Pendekatan ringkas menggunakan LINQ untuk menapis dan membina semula tatasusunan:
<code class="language-csharp">var foos = new Foo[] { foo1, foo2, foo3, foo4 }; foos = foos.Where(f => f.Id != idToRemove).ToArray();</code>
Ini menukar tatasusunan kepada List<T>
, menapis keluar elemen yang tidak diingini berdasarkan keadaan (di sini, f.Id != idToRemove
), dan kemudian menukar senarai yang ditapis kembali kepada tatasusunan.
Kaedah Sambungan Tersuai untuk RemoveAt
Kefungsian
Untuk lebih kawalan, kaedah sambungan tersuai yang meniru gelagat RemoveAt
boleh dilaksanakan:
<code class="language-csharp">public static T[] RemoveAt<T>(this T[] source, int index) { if (index < 0 || index >= source.Length) throw new ArgumentOutOfRangeException(nameof(index)); T[] dest = new T[source.Length - 1]; Array.Copy(source, 0, dest, 0, index); Array.Copy(source, index + 1, dest, index, source.Length - index - 1); return dest; }</code>
Kaedah ini mengendalikan kes tepi dengan cekap dan menyalin elemen sebelum dan selepas indeks yang ditentukan ke tatasusunan baharu, dengan berkesan mengalih keluar elemen pada indeks yang diberikan. Penggunaan:
<code class="language-csharp">Foo[] foos = GetFoos(); foos = foos.RemoveAt(2);</code>
Ini menawarkan penggantian yang lebih langsung untuk kefungsian RemoveAt
yang hilang dalam tatasusunan biasa. Ingat bahawa kedua-dua kaedah mencipta tatasusunan baharu; tatasusunan asal kekal tidak berubah. Pilih kaedah yang paling sesuai dengan keperluan dan gaya pengekodan anda.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Elemen daripada Tatasusunan Biasa dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!