حلقه foreach یک حلقه بسیار پر کاربرده که شاید بشه گفت از بهترین ویژگی های C# محسوب میشه.در این حلقه کنترل در حالت پیش فرض بطور اتوماتیک انجام میشه.یعنی نیازی به تغییر در ایندکس ندارید و در صورت لازم میتونید با break یا continue حلقه رو کنترل کنید. ولی ویژگی اصلی این حلقه این است که میشه با اون تایپ های مختلفی از آرایه ها رو پیمایش کرد و حلقه بطور خودکار از ابتدای آرایه تا انتها رو بدون دخالت برنامه نویس پیمایش می کند.
مثلا شما میخواهید رشته ای رو پیمایش کنید.حال این رشته متشکل از چندین کاراکتر می باشد.این حلقه کاراکتر به کاراکتر تا انتها پیش می رود و در هر بار اجرا شما میتوانید روی کاراکتر مذکور عملیاتی را انجام دهید.
شکل کلی حلقه به این صورت است:
foreach(type child data in parent data)
{
}
string st;
foreach (char ch in st)
{
if(ch=='A')
{
.
.
.
}
}
foreach (DataRow dr in DataTable)
{
if(dr[0].ToString()=="sss")
{
.
.
.
}
}