You're always going to show the last city because your variable "foundPosition" is being reset to cityName.Length-1 each time you execute the first loop. Your 2nd loop is not taking your "All"...