vs someList dosyalarda grup.() Foreach{}
Görünüşe göre bir koleksiyon üzerinde yineleme için birçok yol vardır. Eğer herhangi bir fark varsa, veya başka bir şekilde kullanmak istiyorum neden merak.
İlk yazın:
List<string> someList = <some way to init>
foreach(string s in someList) {
<process the string>
}
Diğer Taraftan:
List<string> someList = <some way to init>
someList.ForEach(delegate(string s) {
<process the string>
});
Yukarıda kullandığım anonim temsilci yerine, belirtin, yeniden kullanılabilir bir temsilci var mı diye kafamı üstüne sanırım...
CEVAP
Önemli ve ikisi arasında yararlı bir ayrım vardır.
Çünkü .for
bir döngü koleksiyonu yineleme yapmak için kullanır dosyalarda grup için bu geçerli değil:
someList.ForEach(x => if(x.RemoveMe) someList.Remove(x));
foreach
bir kaptan kullanır, ancak, bu geçerli değildir:
foreach(var item in someList)
if(item.RemoveMe) someList.Remove(item);
tl;dr: copypaste uygulamanıza bu kod DEĞİL!
Bu örnekler ForEach()
foreach
arasındaki farkları göstermek için sadece onlar en iyi yöntem değildir.
for
bir döngü içinde bir listeden öğe çıkarma gibi yan etkileri olabilir. En yaygın olanı bu soruya yorum olarak açıklanmıştır.
Eğer bir listeden birden fazla öğe kaldırmak için arıyorsanız, genel olarak, gerçek kaldırma kaldırmak için hangi belirlenmesi ayırmak isterim. Kodunuzu kompakt tutmak değil, ama herhangi bir öğe kaçırmayın garanti eder.
Paralel.() ForEach(IEnumerable<T>...
Nasıl dosyalarda grup olmadan listesin...
'' Paralel devam etmek için ...
Paralel.Dosyalarda grup neden bir &quo...
Tamir Internet Explorer (adres bilgisi...