Mengalih Keluar Elemen dari Tatasusunan C# dengan Cekap
Tatasusunan C# sememangnya tetap dalam saiz; anda tidak boleh mengalih keluar elemen secara langsung. Walau bagaimanapun, beberapa kaedah mensimulasikan penyingkiran unsur secara berkesan. Pendekatan terbaik bergantung pada versi .NET Framework anda dan keperluan khusus.
Memanfaatkan LINQ (untuk .NET Framework 3.5 dan lebih baru):
LINQ menawarkan penyelesaian yang elegan untuk manipulasi tatasusunan. Untuk mengalih keluar semua kejadian nilai tertentu:
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 }; int valueToRemove = 4; numbers = numbers.Where(num => num != valueToRemove).ToArray();</code>
Mengalih keluar hanya kejadian pertama memerlukan pendekatan yang sedikit berbeza:
<code class="language-csharp">int indexToRemove = Array.IndexOf(numbers, valueToRemove); numbers = numbers.Where((num, index) => index != indexToRemove).ToArray();</code>
Kaedah Bukan LINQ (untuk .NET Framework 2.0 dan lebih baru):
Untuk rangka kerja .NET yang lebih lama, kaedah tatasusunan tradisional diperlukan. Satu teknik menggunakan fungsi predikat tersuai:
<code class="language-csharp">static bool isNotFour(int n) { return n != 4; } int[] numbers = { 1, 3, 4, 9, 2, 4 }; numbers = Array.FindAll(numbers, isNotFour).ToArray();</code>
Sebagai alternatif, tukar tatasusunan kepada List<T>
, alih keluar elemen dan tukar semula:
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 }; int valueToRemove = 4; int indexToRemove = Array.IndexOf(numbers, valueToRemove); List<int> tempList = new List<int>(numbers); tempList.RemoveAt(indexToRemove); numbers = tempList.ToArray();</code>
Pertimbangan Penting: Sentiasa sahkan kewujudan elemen dalam tatasusunan menggunakan Array.IndexOf
sebelum cuba mengalih keluar untuk mengelakkan pengecualian. Menggunakan LINQ biasanya memberikan kod yang lebih ringkas dan boleh dibaca, tetapi kaedah bukan LINQ menawarkan keserasian dengan rangka kerja yang lebih lama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Padamkan Elemen dari Array dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!