public void EraseOn(string text, ISurface surface) { var startIndex = surface.Show().LastIndexOf(text, StringComparison.Ordinal); if (startIndex < 0) { return; } var length = text.Length - 1; for (var i = length; i >= 0; i--) { if (EraserDurability == 0) { return; } var character = text[i]; surface.Erase(startIndex + i); EraserDurability -= char.IsWhiteSpace(character) ? 0u : 1u; } }