public static List LoadRestaurantList()
{
FileStream fs = new FileStream(\"Restaurant.txt\", FileMode.OpenOrCreate);
BinaryFormatter bf = new
Serialization and Deserialization are each others opposites. This means the type(s) used during serialization needs to be the same during deserialization.
In your code that is not the case. You serialize Restaurant types but when you deserialize you expect a List.
Adapt your serialization code as follows:
public static void SaveRestaurantList(List<Restaurant> restaurantList)
{
using(FileStream fs = new FileStream("Restaurant.txt", FileMode.Create, FileAccess.Write))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, restaurantList);
}
}