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

Bagaimanakah Saya Boleh Mendapatkan Elemen N Terakhir daripada Koleksi Menggunakan LINQ?

Patricia Arquette
Lepaskan: 2025-01-04 03:49:39
asal
713 orang telah melayarinya

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

Mendapatkan semula N Terakhir Elemen Koleksi dengan LINQ

Linq menyediakan pelbagai pengendali untuk memanipulasi dan menanya koleksi objek. Satu keperluan biasa ialah mendapatkan elemen N terakhir daripada koleksi. Ini boleh dicapai melalui gabungan pengendali LINQ.

Mari andaikan kita mempunyai koleksi item. Untuk mendapatkan elemen N terakhir, kita boleh menggunakan langkah berikut:

Langkah 1: Tentukan Indeks Permulaan:

Kita perlu mengira indeks permulaan dalam koleksi di mana unsur N terakhir bermula. Ini dicapai dengan menolak bilangan elemen yang dikehendaki daripada jumlah bilangan elemen dalam koleksi.

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

Langkah 2: Langkau ke Indeks Permulaan:

Menggunakan operator 'Langkau', kami bergerak melepasi startIndex dan memilih elemen yang tinggal dalam koleksi.

var lastNElements = collection.Skip(startIndex);
Salin selepas log masuk

Pendekatan Kaedah Sambungan:

Jika tiada operator terbina dalam untuk mendapatkan elemen N terakhir, kami boleh mencipta kaedah sambungan untuk memudahkan proses ini. Kaedah sambungan akan memanjangkan antara muka IEnumerable dan menyediakan kaedah 'TakeLast'.

public static class MiscExtensions
{
    public static IEnumerable<T> TakeLast<T>(this IEnumerable<T> source, int N)
    {
        // Determine the starting index
        int startIndex = Math.Max(0, source.Count() - N);

        // Skip to the starting index and select remaining elements
        return source.Skip(startIndex);
    }
}
Salin selepas log masuk

Kaedah sambungan ini kini boleh digunakan seperti berikut:

var lastNElements = collection.TakeLast(5);
Salin selepas log masuk

Pertimbangan Prestasi:

Panggilan 'Count()' boleh menyebabkan penghitungan struktur data tertentu, mengakibatkan dalam dua pas ke atas data. Untuk enumerable hadapan sahaja untuk mengelakkan dua pas, pertimbangkan untuk menggunakan penimbal sementara untuk menyimpan item semasa penghitungan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Elemen N Terakhir daripada Koleksi Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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