Rumah >pembangunan bahagian belakang >C++ >IEnumerable vs. List dalam C#: Bilakah anda harus memilih yang mana?
perbezaan dan kesan prestasi iEnumerable dan senarai dalam C#
Apabila merawat koleksi di C#, perbezaan antara
dan sangat penting. IEnumerable
mewakili pengarang, yang menyediakan kaedah untuk melintasi koleksi; List
IEnumerable
Pertimbangkan dua pertanyaan LINQ berikut: List
IEnumerable
<code class="language-csharp">List<animal> sel1 = (from animal in Animals join race in Species on animal.SpeciesKey equals race.SpeciesKey select animal).Distinct().ToList(); IEnumerable<animal> sel2 = (from animal in Animals join race in Species on animal.SpeciesKey equals race.SpeciesKey select animal).Distinct();</code>Apabila menggunakan , debugging akan menunjukkan ahli seperti "dalaman" dan "luar", yang mungkin mengelirukan. Ahli "Inner" termasuk objek dari set sambungan (spesies), dan ahli "luar" termasuk objek dari set awal (haiwan). Pertanyaan menggunakan ahli -ahli ini untuk melaksanakan operasi sambungan.
Pertimbangan Prestasi
dari segi prestasi, IEnumerable
biasanya lebih disukai kerana ia ditangguhkan sehingga pertanyaan penghitungan. Menggunakan akan dipaksa untuk mengira dan hasil tertentu dengan segera, yang mungkin mengehadkan peluang pengoptimuman.
Gunakan adegan
IEnumerable
Berkenaan dengan situasi berikut: ToList()
mahu melambatkan pelaksanaan sehingga kemudian. List
Pelbagai lelaran mungkin diperlukan.
Berkenaan dengan situasi berikut: IEnumerable
List
Atas ialah kandungan terperinci IEnumerable vs. List dalam C#: Bilakah anda harus memilih yang mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!