Just looking at your code, I can see redundant code and a simplification. You don't need to initialize the list like that as the list will be automatically filled by the Function's returned values.
So this:
List<string> CityList = new List<string>();
CityList = utility.GetCities(prefixText);
return CityList;
becomes:
var CityList = utility.GetCities(prefixText);
return CityList;
and can be simplified further:
return utility.GetCities(prefixText);