Rumah >pembangunan bahagian belakang >C++ >IEnumerable vs. List di Linq: Bilakah anda harus menggunakan masing -masing?
Apabila menggunakan LINQ untuk membina pertanyaan, pemaju sering menghadapi pilihan dan
sebagai masalah jenis sasaran. Untuk menjelaskan pilihan ini, marilah kita meneroka perbezaan tingkah laku dan prestasi mereka.
IEnumerable
fungsional vs. serupa List
Ia mewakili konsep abstrak dan menerangkan bagaimana untuk melelehkan data. Ia tidak mempunyai penyimpanan data atau kaedah akses yang ditentukan. Sebaliknya, adalah pelaksanaan spesifik , yang menyimpan data dalam array tetap tetap. Apabila menggunakan , pengkompil boleh lebih fleksibel ditangguhkan dan dioptimumkan. Contohnya: pertanyaan linq dan ienumeration
IEnumerable
Pertimbangkan pertanyaan LINQ berikut: List
IEnumerable
IEnumerable
Dalam contoh ini, tanyakan penggunaan
. Dalam , ahli dalaman seperti "dalaman" dan "luaran" mempunyai ahli dalaman untuk menguruskan siasatan dan penilaian. Penilaian tertunda vs penilaian yang bersemangat
Sokongan Penilaian Tertunda, yang bermaksud pelaksanaan pertanyaan sebenar akan melambatkan apabila mengakses data semasa lelaran. Sebaliknya, penggunaan akan memaksa pertanyaan dengan segera untuk menghasilkan objek
<code class="language-csharp">IEnumerable<animal> sel = (from animal in Animals join race in Species on animal.SpeciesKey equals race.SpeciesKey select animal).Distinct();</code>.
Distinct()
bila menggunakan ienumeration IEnumerable<animal>
IEnumerable
lebih banyak:
Anda berhasrat untuk menyusun pelbagai ungkapan LINQ untuk membolehkan penilaian dan pengoptimuman tertunda.
IEnumerable
Anda ingin mengelakkan pemprosesan yang tidak perlu dengan mengembalikan hanya data yang hanya memerlukan keperluan sebenar. ToList()
List
Apabila situasi berikut berlaku,
lebih baik:
IEnumerable
Dari segi prestasi, jika pertanyaan melaksanakan pelbagai atau untuk pelaksanaan sumber data jauh, mungkin lebih efisien daripada
. Walau bagaimanapun, jika anda perlu berulang kali mengakses hasil pertanyaan, dapat memberikan prestasi yang lebih baik dengan mengelakkan pelbagai penilaian. List
Singkatnya, pilihan antara dan
Atas ialah kandungan terperinci IEnumerable vs. List di Linq: Bilakah anda harus menggunakan masing -masing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!