


Bagaimanakah Saya Boleh Mendapatkan Subset Rawak Koleksi Dengan Cekap Menggunakan LINQ?
Jan 06, 2025 am 03:17 AMMengambil SubKoleksi Rawak dengan Cekap dengan Kocok
Cabaran untuk mendapatkan subset rawak koleksi sering dihadapi dalam pengaturcaraan. LINQ menyediakan mekanisme serba boleh untuk memanipulasi pengumpulan data, dan pembangun sering mencari pendekatan yang dioptimumkan untuk mendapatkan subset rawak.
Penyelesaian Cadangan: Melaksanakan Fisher-Yates-Durstenfeld Shuffle
Satu optimum kaedah untuk mencapai ini adalah melalui shuffle Fisher-Yates-Durstenfeld. Teknik ini melibatkan pemilihan elemen rawak secara berulang daripada koleksi sumber dan menukarnya dengan elemen terakhir yang tidak diisih, memastikan setiap elemen mempunyai peluang yang sama untuk dipilih.
Pelaksanaan melalui Kaedah Sambungan
Untuk meningkatkan kefungsian LINQ, kaedah sambungan yang dipanggil Shuffle telah dibangunkan, yang menggabungkan Fisher-Yates-Durstenfeld shuffle. Kaedah ini menerima input IEnumerable dan mengembalikan urutan yang dikocok. Selain itu, ia menyokong penghantaran contoh Rawak untuk penyesuaian.
Pelaksanaan melibatkan penukaran koleksi sumber kepada Senarai, memastikan akses rawak masa berterusan. Elemen kemudian ditukar secara berurutan untuk mencipta pilih atur rawak.
Contoh Penggunaan
Untuk menggunakan kaedah sambungan Kocok:
- Import ruang nama tempat sambungan ditakrifkan.
- Panggil kaedah Kocok pada sumber anda koleksi.
- Secara pilihan, nyatakan contoh Rawak untuk penyesuaian.
- Gunakan urutan kocok yang terhasil mengikut keperluan.
Contoh Kod
Coretan kod yang disediakan menunjukkan cara menggunakan sambungan Kocok untuk mendapatkan kocok subkoleksi saiz yang ditentukan:
// take n random items from yourCollection var randomItems = yourCollection.Shuffle().Take(n);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Subset Rawak Koleksi Dengan Cekap Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Gulc: Perpustakaan C dibina dari awal

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Penggunaan dan perkongsian frasa yang berbeza

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?
