Вместо взлома установите логическое значение, чтобы отслеживать, когда запускать тело foreach, а когда нет
void main() {
var id = [1, 2, 3, 4, 5];
bool forEachDone=false;
id.asMap().forEach((index, number) {
//forEachDone=false;
print('ForEach loop');
if(!forEachDone){
for (int i = 0; i < 1; i++,forEachDone=true) {
print("for loop");
}
}
});
}