You can use the Enumerable.TakeWhile Extension Method:
foreach (var i in arr.TakeWhile(j => condition1 && ... && conditionN))
{
// do something
}
This is roughly equivalent to:
foreach (var j in arr)
{
if (!(condition1 && ... && conditionN))
{
break;
}
var i = j;
// do something
}