بایگانی ماهیانه: اردیبهشت ۱۳۹۵

C# 2

آموزش برنامه نویسی #C – حلقه های foreach

در استفاده روزمره از حلقه for در برنامه ها ، کمتر از این حلقه به نحوی که شرح داده شد استفاده می شود. به علت نحوه کارکردی که چارچوپ NET. دارد،معمولا در برنامه ها با نع خاصی از این حلقه که foreach نامیده می شود بیشتر کار خواهیم کرد .
در الگوریتم برنامه ها عموما هنگامی از یک حلقه استفاده می کنید که مجموعه ای از اشیا را در اختیار داشته باشید و بخواهید بین اعضای آن جابه جا شوید، که این مجموعه هم اغلب به صورت یک آرایه است. برای مثال ممکن است بخواهید بین تمام فایل های درون یک فولدر بگردید وفایلی را پیدا کنید که اندازه آن بیش از حد مجاز است . هنگامی که از چارچوب NET. بخواهید که لیست تمام فایلها را به شما برگرداند ، یک آرایه از اشیاء را دریافت خواهید کرد که هرکدام از اعضای آن نشان دهنده ی یک فایل است . در ادامه حلقه داخل برنامه خود را به نحوی تغییر خواهید داد که نام تمام فولدرهای داخل درایو C شما را برگرداند .

حلقه foreach
۱) کنترل Button جدیدی به برنامه اضافه کنید ، خاصیت Name آن را برابر btnForEachLoop و خاصیت Text آن را برابر ForEach Loop قرار دهید .
۲) روی این کنترل دو بار کلیک کنید و کد زیر را در متد مربوط به رویداد Click آن وارد کنید :

۳) برنامه را اجرا کنید و روی دکمه ForEach Loop کلیک کنید . در ListBox نام تمام فولدرهای موجود در درایو C خود را مشاهده خواهید کرد .

چگونه کار می کند

برای به دست آوردن لیست تمام دایرکتوری های موجود در یک مسیر خاص در برنامه باید از تابع GetFirectories مربوط به کلاس Directory در فضای نام System.IO استفاده کنیم. این تابع یک آرایه رشته ای از نام تمام دایرکتوری های موجود در مسیری که برای آن مشخص شده است را برمی گرداند . در این برنامه از این تابع برای دریافت تمامی دایرکتوری های موجود در درایو C استفاده کردیم .
اصل کار حلقه foreach به این صورت است که به وسیله ی آن شما می توانید در بین تمام اشیای موجود در یک آرایه خاص که تعداد آن را نیز نمی دانید حرکت کنید برای ایجاد این حلقه به منبعی از اشیا نیاز دارید ویک متغییر کنترل کننده که در هر مرحله ، شی مورد بررسی در آن قرار خواهد گرفت. در این مثال تابع GetDirectories, ارایه ای از اشیا را به عنوان منبع برای حلقه foreach فراهم می کند و متغیر strFolder به عنوان متغییر کنترل کننده به کار می رود