If all of your classes will store the same data but relevant to different cities then you could add a City member to the class, eg:
class City
{
string Name;
string Number;
string City;
}
Your class would obviously include the necessary properties, modifiers, etc.
If each class will have a different implementation then you can create a virtual class that outlines the members each city must have. Then each derived city class inherits from the base class and overrides the virtual members.
Using this structure, you can create a list of your base class to store all your cities but when you access the virtual members it will call the child versions. Such as:
class Class1
{
public Class1()
{
A = 1;
}
virtual public int A { get; set; }
}
class Class2 : Class1
{
public Class2()
{
A = 2;
}
public override int A { get; set; }
}
class Program
{
static void Main(string[] args)
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
List<Class1> classes = new List<Class1>();
classes.Add(c1);
classes.Add(c2);
foreach (Class1 cl in classes)
{
Console.WriteLine(cl.A);
}
Console.ReadKey();
}
}