Rumah >pembangunan bahagian belakang >C++ >Mengapa C# Tidak Mempunyai Kaedah Sambungan ForEach untuk IEnumerable?
Kes Penasaran Kehilangan IEnumerable ForSetiap Sambungan
Perbincangan baru-baru ini tentang kekurangan fungsi Zip
C# mencetuskan soalan berkaitan: mengapa C# tidak menyediakan kaedah sambungan ForEach
untuk antara muka IEnumerable
yang digunakan secara meluas? Menariknya, hanya List<T>
yang menyertakan fungsi ini.
Merungkai Misteri
Adakah peninggalan ini pengoptimuman prestasi? Atau adakah terdapat alasan yang lebih mendalam dan asas? Beberapa teori cuba menjelaskan jurang yang ketara ini.
Kelebihan foreach
Terbina dalam
Satu perspektif mencadangkan bahawa pernyataan foreach
terbina dalam C# memenuhi kebanyakan keperluan lelaran dengan secukupnya. Sintaksnya yang ringkas dan boleh dibaca selalu diutamakan:
<code class="language-csharp">foreach (Item item in list) { item.DoSomething(); }</code>
Ini berbeza dengan sintaks yang lebih bertele-tele bagi kaedah sambungan:
<code class="language-csharp">list.ForEach(item => item.DoSomething());</code>
Argumen untuk ForEach
Sambungan
Walau bagaimanapun, yang lain mempertikaikan faedah praktikal ForEach()
kaedah sambungan dalam situasi tertentu. Faedah ini termasuk:
foreach
.ForEach()
panggilan adalah kelebihan yang menarik.Perubahan dalam Perspektif
Pada mulanya ragu-ragu, sesetengah kini mengenali nilai ForEach()
kaedah sambungan dalam senario tertentu. Penilaian semula ini mencadangkan bahawa Microsoft mungkin mempertimbangkan untuk menambah kaedah ForEach
piawai dalam keluaran rangka kerja akan datang.
Ketiadaan kaedah sambungan ini untuk IEnumerable
kekal sebagai topik perbincangan. Memandangkan potensi kelebihan, komuniti pembangun menjangkakan perkembangan selanjutnya, berharap dapat melihat jurang ini ditangani dalam perpustakaan sambungan C#.
Atas ialah kandungan terperinci Mengapa C# Tidak Mempunyai Kaedah Sambungan ForEach untuk IEnumerable?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!