Dalam C#, tatasusunan dilaksanakan sebagai blok memori bersebelahan yang menyimpan nilai jenis yang sama. Walau bagaimanapun, tidak seperti koleksi lain seperti ArrayLists, tatasusunan mempunyai fleksibiliti terhad dalam manipulasi elemen. Begini cara untuk mengendalikan pemadaman elemen daripada tatasusunan:
Untuk mengalih keluar semua kejadian nilai tertentu, anda boleh menggunakan kaedah sambungan .Where() LINQ (jika menyasarkan .NET Framework 3.5 atau lebih baru) atau kaedah Array.FindAll() .NET Framework 2.0. Pertimbangkan kod berikut:
int[] numbers = { 1, 3, 4, 9, 2 }; int numToRemove = 4; // LINQ numbers = numbers.Where(val => val != numToRemove).ToArray(); // 非LINQ numbers = Array.FindAll(numbers, isNotFour).ToArray(); bool isNotFour(int n) { return n != 4; }
Jika anda hanya mahu mengalih keluar contoh pertama nilai, anda boleh sekali lagi memanfaatkan pendekatan LINQ atau bukan LINQ:
int[] numbers = { 1, 3, 4, 9, 2, 4 }; int numToRemove = 4; // LINQ int numIdx = Array.IndexOf(numbers, numToRemove); numbers = numbers.Where((val, idx) => idx != numIdx).ToArray(); // 非LINQ int numIdx = Array.IndexOf(numbers, numToRemove); List<int> tmp = new List<int>(numbers); tmp.RemoveAt(numIdx); numbers = tmp.ToArray();
Ringkasnya, sementara tatasusunan menyediakan penyimpanan dan pengambilan elemen yang cekap, mereka mempunyai fleksibiliti terhad dalam manipulasi elemen, menjadikan kaedah seperti RemoveAt() tidak sesuai. Sebaliknya, kaedah yang digariskan di atas menyediakan alternatif yang cekap untuk mengalih keluar nilai daripada tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Cekap daripada C# Arrays?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!