Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendapatkan Elemen N Terakhir Koleksi Menggunakan LINQ dengan Cekap?

Bagaimanakah Saya Boleh Mendapatkan Elemen N Terakhir Koleksi Menggunakan LINQ dengan Cekap?

Linda Hamilton
Lepaskan: 2025-01-04 19:56:44
asal
888 orang telah melayarinya

How Can I Efficiently Retrieve the Last N Elements of a Collection Using LINQ?

Menentukan N Elemen Terakhir Koleksi dengan LINQ

Mendapatkan semula nombor tertentu elemen penutup daripada koleksi boleh menjadi keperluan yang kerap. Walaupun rangka kerja mungkin tidak menawarkan kaedah khusus, kaedah sambungan boleh memberi manfaat.

Menggunakan Kaedah Sambungan TakeLast

Kaedah yang cekap untuk mengekstrak unsur N terakhir yang digunakan Kaedah Langkau LINQ. Kod berikut menggambarkan penggunaannya:

collection.Skip(Math.Max(0, collection.Count() - N));
Salin selepas log masuk

Mengekalkan pesanan item, teknik ini mengelakkan pengisihan dan memastikan keserasian dengan pelbagai penyedia LINQ. Langkah berjaga-jaga mesti diambil untuk mengelakkan memberikan hujah negatif kepada Langkau, kerana pembekal tertentu (mis., Rangka Kerja Entiti) mungkin menimbulkan pengecualian.

Melaksanakan Kaedah Pelanjutan

Kod di bawah mempersembahkan kaedah sambungan TakeLast tersuai:

public static class MiscExtensions
{
    // Ex: collection.TakeLast(5);
    public static IEnumerable<T> TakeLast<T>(this IEnumerable<T> source, int N)
    {
        return source.Skip(Math.Max(0, source.Count() - N));
    }
}
Salin selepas log masuk

Prestasi Pertimbangan

Bergantung pada struktur data, pengiraan (melalui Count()) boleh menghasilkan berbilang penghitungan. Walaupun pengoptimuman wujud untuk jenis data dan senario tertentu, pendekatan ini mungkin tidak sesuai untuk enumerable hadapan sahaja.

Algoritma Satu Laluan Alternatif

Dalam kes di mana prestasi adalah kritikal, algoritma satu laluan alternatif boleh digunakan. Pendekatan ini menggunakan penimbal sementara untuk mengumpul item, menghasilkan elemen N terakhir sebaik sahaja penghujung koleksi dicapai. Teknik yang dibangunkan oleh Lasse V. Karlsen dan Mark Byers menjadi contoh algoritma sedemikian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Elemen N Terakhir Koleksi Menggunakan LINQ dengan Cekap?. 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