حلقه تکرار foreach
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
حلقه تکرار foreach چیست؟
به مجموع تعدادی از خانههای کنار هم در حافظه مجموعه یا لیست یا کالکشن گفته میشود!
در هر زمان که تمایل داشتید بر روی تمامی خانههای یک مجموعه حرکت کنید، توصیه میشود تا از حلقه تکرار foreach استفاده کنید که راحتترین حلقه برای کار با انواع مجموعهها است.
به مثال زیر توجه کنید:
int[ ] age = { 16, 18, 19, 30, 73, 15 };
foreach (var item in age)
{
Console.WriteLine(item);
}
خروجی
16
18
19
30
73
15
همانطور که مشاهده میکنید، با استفاده از حلقه foreach به راحتی و بدون مشخص کردن شمارنده حلقه (نقطه شروع، نقطه پایان و میزان پرش) توانستیم بر روی تمامی خانههای آرایه حرکت کنیم.
نکته اول: var یک نوع داده است، دقیقا مثل int و string و … ، با این تفاوت که نوع داده آن در ابتدا مشخص نیست! اما به محض اینکه داخل آن دادهای قرار گیرد، سریعا خود را شبیه به آن نوع دادهای میکند.
در مثال زیر شناسه a هیچ شکلی در حافظه ندارد، چرا که تنها تعریف شده است:
var a;
اما به محض اینکه در آن دادهای ریخته میشود، طبق آن داده تغییر شکل میدهد:
var a = "kaarisho";
در مثال بالا از آنجایی که مقدار شناسه a را رشته kaarisho قرار دادیم، درنتیجه از این به بعد var a همان string a است.
در نتیجه در مثال اول، چون حلقه تکرار foreach را به آرایهای از اعداد صحیح از نوع int متصل نمودیم، پس var از نظر سیستم از الان به بعد int است (چون هر خانه از آرایه age از نوع int است)؛ اما اگر به آرایهای از رشتهها متصل میکردیم، نوع var از نظر سیستم string میبود و به همین ترتیب برای مابقی نوعهای دادهای دیگر.
نکته دوم: کلمه item یک نام دلبخواهی است که در هر دور حلقه foreach، سیستم به هر خانه از آن مجموعه که در مثال ما age میباشد، item میگوید. پس نام مستعار هرخانه از آرایه age داخل حلقه foreach از نظر سیستم item است.
در نتیجه اگر به جای item شما از کلمه kaarisho استفاده کنید، سیستم در هر دور حلقه آن خانه از آرایه age را kaarisho مینامد.
نکته سوم: کلمه in در حلقه تکرار foreach, یک کلمه کلیدی است، درنتیجه حتما باید نوشته شود!
نکته چهارم: در جلوی کلمه کلیدی in باید حتما نام مجموعه مورد نظر (که در مثال ما age است) نوشته شود.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.