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
Mary-Kate Olsenasal
2025-01-24 03:41:13422semak imbas

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>

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>

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>

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>

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!

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