// You can't stop map foreach loop, but you can stop it from executing code using flag. void main() { var id = [1, 2, 3, 4, 5]; bool forEachDone = false; id.asMap().forEach((index, number) { if(forEachDone == false) { print("$index $number"); if (number == 3) { forEachDone = true; } } }); }//you cant break in a foreach function in dart, //but use normal for loop and break in it for (var number in id) { var index = id.indexOf(number); print('Origin forEach loop'); for (int i = 0; i < 1; i++) { print("for loop"); } break; }