Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Cekap dari Senarai Menggunakan LINQ?

Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Cekap dari Senarai Menggunakan LINQ?

Mary-Kate Olsen
Lepaskan: 2025-01-24 03:41:13
asal
457 orang telah melayarinya

How Can I Efficiently Remove Elements from a List Using LINQ?

Gunakan LINQ untuk mengalih keluar elemen Senarai dengan cekap

LINQ ialah teknologi pertanyaan data yang berkuasa yang boleh menapis dan memilih elemen tertentu dalam koleksi. Walau bagaimanapun, apabila berurusan dengan koleksi boleh ubah seperti Senarai, pengubahsuaian seterusnya berdasarkan hasil pertanyaan perlu dikendalikan dengan berhati-hati.

Pertanyaan dan pengalihan keluar LINQ

Pertimbangkan pertanyaan LINQ berikut:

<code class="language-csharp">var authors = from x in authorsList
              where x.firstname == "Bob"
              select x;</code>
Salin selepas log masuk

Pertanyaan ini mengembalikan urutan objek Pengarang yang dinamakan pengarang. Walau bagaimanapun, jika anda ingin mengalih keluar pengarang ini daripada authorsList, menggunakan pengarang untuk dialih keluar tidak akan mengemas kini koleksi asal secara langsung.

Penyelesaian untuk mengalih keluar hasil pertanyaan

Terdapat dua strategi utama untuk memadamkan hasil pertanyaan daripada authorsList:

  1. Kecualikan elemen daripada pertanyaan: Untuk mengelakkan keperluan mengalih keluarnya kemudian, anda boleh mengubah suai pertanyaan untuk mengecualikan elemen yang tidak diingini:
<code class="language-csharp">authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();</code>
Salin selepas log masuk

Ini menghasilkan senarai pengarang baharu yang ditapis yang tidak termasuk Bob.

  1. Gunakan RemoveAll: Jika anda telah melaksanakan pertanyaan dan perlu mengalih keluar hasil daripada authorsList, anda boleh menggunakan kaedah RemoveAll:
<code class="language-csharp">authorsList.RemoveAll(x => x.FirstName == "Bob");</code>
Salin selepas log masuk

Kaedah ini berulang pada authorsList dan mengalih keluar sebarang elemen yang sepadan dengan predikat.

Cara alternatif untuk menapis berbilang elemen

Jika anda perlu mengalih keluar berbilang elemen tertentu berdasarkan set berasingan (cth. HashSet):

<code class="language-csharp">var setToRemove = new HashSet<Author>(authors);
authorsList.RemoveAll(x => setToRemove.Contains(x));</code>
Salin selepas log masuk

Kaedah ini secara berkesan mengalih keluar semua pengarang dalam setToRemove daripada authorsList.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Cekap dari Senarai Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan