SERİ boyunca koleksiyonun tüm elemanları için işlevi uygulamak
Son zamanlarda ETMENİZ ve onun şaşırtıcı ile başladı. Eğer ETMENİZ beni bir fonksiyon - herhangi bir fonksiyonu uygulamak için foreach kullanarak olmadan bir koleksiyonun tüm elemanları için izin olacağını merak ediyordum. Python lambda fonksiyonları gibi bir şey.
Eğer int bir liste var örneğin, her element ETMENİZ kullanarak bir sabit ekleyebilirim
Eğer DB bir tablo var, tüm kayıtları ETMENİZ kullanmak için bir alan ayarlayabilirsiniz.
C kullanıyorum#
CEVAP
Bu yaklaşımın yaygın bir şekilde IEnumerable<T>
ForEach
kendi genel yöntemi eklemektir. İşte MoreLINQ var:
public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
source.ThrowIfNull("source");
action.ThrowIfNull("action");
foreach (T element in source)
{
action(element);
}
}
(ThrowIfNull
herhangi bir referans Türüne bir uzantı yöntemi olduğu, açık bir şey yok.)
Eğer bunun bir parçası olup olmadığını görmek için ilginç olacak .NET 4.0. SERİ işlevsel stil aykırı, ama bir sürü insan bunu yararlı şüphe yok.
O var sonra, şöyle bir şey yazabilirsiniz:
people.Where(person => person.Age < 21)
.ForEach(person => person.EjectFromBar());
Sınıf elemanları sayım Jquery bunu uyg...
Tamsayı tabanlı bir güç işlevi uygulam...
nasıl matlab içinde her satır için bir...
Nasıl Pandalar dataframe iki sütun içi...
jQuery yeni eklenen dom elemanları içi...