that's easy, Just follow the code below.
Declare the list of City Above the foreach loop and on each iteration just add new item to the list
List<City> cities = new List<City> ();
foreach (RouteServiceRef.Hawker rp in recommendPlaceList)
{
hawkername = rp.hawkername;
address = rp.address;
postal = rp.postal;
coordX = rp.xcoord;
coordY = rp.ycoord;
popularity = rp.popularity;
cities.Add(new City(){Name = hawkername, Population = popularity });
}
This fills the cities list as well on the completion of foreach loop.