Neden orada IEnumerable hiçbir dosyalarda grup uzatma yöntemi nedir?
Zip
kayıp işlevi hakkında sorduğum bir soruya ilham:
Neden Enumerable
Sınıfı ForEach
uzantısı bir yöntem var mı? Ya da herhangi bir yerde? ForEach
bir yöntem sadece sınıf List<>
. Eksik olmasının bir sebebi (performans) var mı?
CEVAP
Zaten işin çoğu zaman yaptığı dosyalarda grup için bir açıklama dili dahil.
Aşağıdaki görmekten nefret ediyorum:
list.ForEach( item =>
{
item.DoSomething();
} );
Yerine:
foreach(Item item in list)
{
item.DoSomething();
}
İkincisi daha net ve daha kolay okunurçoğu durumdaama belki biraz daha uzun yazın.
Ancak, bu konudaki duruşumu değiştirdim itiraf etmeliyim ki; bir ForEach() uzatma yöntemi aslında bazı durumlarda yararlı olacaktır.
İşte bu açıklama ve Yöntem arasındaki temel farklar:
- Bir tür denetleme: dosyalarda grup zamanı, dosyalarda grup yapılır() zaman (Büyük bir Artı!) derleme.
- Aramak için sözdizimi bir temsilci aslında çok basit: nesneleri.ForEach(Şey);
- Böyle bir özelliğin kötülüğünü/yararlılığı tartışmaya açık olsa da. () ForEach zincirleme olabilir:
Bu nedenle bütün büyük puan burada bir çok insan tarafından yapılmış ve insanların işlevi eksik neden görebilirsiniz. Microsoft, bir sonraki çerçeve yineleme dosyalarda grup için standart bir yöntem eklemek benim için sorun olmazdı.
Neden orada ConcurrentHashMap karşı hi...
Neden bu dize, uzatma yöntemi bir isti...
Neden Listesi<T>.Dosyalarda grup...
Paralel.() ForEach(IEnumerable<T>...
Neden '' anahtar kelime uzat...