نکات پنهان در دات نت –نکته 1 – متد ForEach

یک Extension Method است که عملیات تعیین شده action را برای هر آیتم موجود در List<T> انجام میدهد. حالت کلی به این شکل است:

List<T>.ForEach(Action<T> action);

قطعا شما در بسیاری از کدها از حلقه ها استفاده کردید بخصوص حلقه foreach که در پیمایش لیستها کاربرد زیادی دارد. به جای استفاده از حلقه foreach می توانید از متد ForEach استفاده کنید. به مثال زیر توجه کنید:

foreach(Foo foo in foos)
{
statement involving foo;
}

به جای کد فوق می توانید از این کد استفاده کنید:

 

foos.ForEach((Foo foo)=>{ statement involving foo; });

یا:

foos.ForEach(
    delegate(Foo foo)
{
    statement involving foo;
});

اما با توجه به تستهایی که انجام شده است سرعت اجرای کدهای IL تولید شده برای متد ForEach بالاتر از حلقه foreach است (البته بجز در آرایه ها). علاوه بر آن خوانایی ForEach بالاتر و نگهداری کدهای آن ساده تر است. برای مطالعه بیشتر می توانید به این منابع مراجعه کنید:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *