Avoids false positive updates in Remove when iterating the final item and leftover values being returned when IsEnd is true