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);
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);
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); } }
Kaedah sambungan ini kini boleh digunakan seperti berikut:
var lastNElements = collection.TakeLast(5);
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!