Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Cekap daripada C# Arrays?

Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Cekap daripada C# Arrays?

Barbara Streisand
Barbara Streisandasal
2025-01-20 20:37:10833semak imbas

How Can I Efficiently Remove Elements from C# Arrays?

Kaedah yang cekap untuk mengalih keluar elemen tatasusunan dalam C#

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:

Alih keluar elemen mengikut nilai

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:

<code class="language-csharp">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; }</code>

Alih keluar tika pertama nilai

Jika anda hanya mahu mengalih keluar contoh pertama nilai, anda boleh sekali lagi memanfaatkan pendekatan LINQ atau bukan LINQ:

<code class="language-csharp">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();</code>

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!

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