static void Main(string[] args)
        {
            bool       x         = true;
            IFormatter formatter = new BinaryFormatter();

            Console.WriteLine("Bienvenido");
            while (x == true)
            {
                Console.WriteLine("Desea utilizar archivo para cargar?(Y/N)");
                string respuesta = Console.ReadLine();
                switch (respuesta)
                {
                case "Y":
                    Console.Clear();
                    try
                    {
                        Stream  streamp = new FileStream("empresa.bin", FileMode.Open, FileAccess.Read);
                        Empresa newemp  = (Empresa)formatter.Deserialize(streamp);
                        Console.WriteLine(newemp.nombre);
                        Console.WriteLine();
                        Console.WriteLine(newemp.rut);
                        Console.WriteLine();
                        foreach (Area area in newemp.divisions)
                        {
                            Console.WriteLine();
                            Console.WriteLine(area.nombre + " " + "Encargado:" + " " + area.encargado.nombre + " " + area.encargado.apellido);

                            foreach (Departamento departamento in area.departamentos)
                            {
                                Console.WriteLine();
                                Console.WriteLine(departamento.nombre + " " + "Encargado:" + " " + departamento.encargado.nombre + " " + departamento.encargado.apellido);
                                foreach (Seccion seccion in departamento.seccions)
                                {
                                    Console.WriteLine();
                                    Console.WriteLine(seccion.nombre + " " + "Encargado:" + " " + seccion.encargado.nombre + " " + seccion.encargado.apellido);
                                    foreach (Bloque bloque in seccion.bloques)
                                    {
                                        Console.WriteLine();
                                        Console.WriteLine(bloque.nombre);
                                        Console.WriteLine("Personal:");
                                        foreach (Persona persona in bloque.personal)
                                        {
                                            Console.WriteLine("");
                                            Console.WriteLine(persona.nombre);
                                            Console.WriteLine(persona.apellido);
                                            Console.WriteLine(persona.rut);
                                            Console.WriteLine(persona.cargo);
                                        }
                                    }
                                }
                            }
                        }
                        streamp.Close();
                    }


                    catch (FileNotFoundException e)
                    {
                        Console.WriteLine(e.Message);
                        Thread.Sleep(2000);
                        goto case "N";
                    }
                    Console.WriteLine("Archivo cargado");
                    Console.ReadKey();
                    break;


                case "N":

                    Console.Clear();
                    Console.WriteLine("Ingrese nombre de la empresa:");
                    string nombre = Console.ReadLine();
                    Console.WriteLine("Ingrese rut de la empresa");
                    string  rut = Console.ReadLine();
                    Persona p1  = new Persona("Juan", "Perez", "20.162.432-4", "Personal");
                    Persona p5  = new Persona("Rodrigo", "Diaz", "19.156.422-4", "Personal");
                    Persona p6  = new Persona("Albert", "Sans", "19.326.443-4", "Personal");
                    Persona p7  = new Persona("Manue", "Guid", "19.156.422-4", "Personal");

                    Persona        p2        = new Persona("Matias", "Eliot", "20.213.234-5", "Encargado de Seccion");
                    Persona        p3        = new Persona("Felipe", "toro", "20.166.432-4", "Encargado de Departamento");
                    Persona        p4        = new Persona("Francisco", "Rios", "20.146.432-4", "Encargado de Area");
                    List <Persona> personas  = new List <Persona>();
                    List <Persona> personas2 = new List <Persona>();

                    List <Bloque>       bloques       = new List <Bloque>();
                    List <Seccion>      seccions      = new List <Seccion>();
                    List <Departamento> departamentos = new List <Departamento>();
                    List <Area>         areas         = new List <Area>();
                    List <Division>     divisions     = new List <Division>();

                    personas.Add(p1);
                    personas.Add(p5);
                    personas2.Add(p6);
                    personas2.Add(p7);



                    Bloque b1 = new Bloque("bloque1", personas);
                    Bloque b2 = new Bloque("bloque2", personas2);
                    bloques.Add(b1);
                    bloques.Add(b2);

                    Seccion s1 = new Seccion("seccion1", p2, bloques);
                    seccions.Add(s1);
                    Departamento d1 = new Departamento("departamento1", p3, seccions);
                    departamentos.Add(d1);
                    Area a1 = new Area("area1", p4, departamentos);
                    divisions.Add(a1);



                    Empresa emp = new Empresa(nombre, rut, divisions);



                    Stream stream = new FileStream("empresa.bin", FileMode.Create, FileAccess.Write);
                    formatter.Serialize(stream, emp);
                    stream.Close();
                    Console.WriteLine("Archivo creado");
                    Thread.Sleep(1000);

                    break;

                default:
                    Console.WriteLine("Respuesta no valida");
                    break;
                }
            }
        }
        static void Main(string[] args)
        {
            int            a = -1;
            List <Empresa> Lista_empresas = new List <Empresa>();

            while (a != 0)
            {
                Console.WriteLine("Bienvenido:\n1. Para crear una nueva empresa\n2. Para leer empresas creadas previamente\n3. Mostrar informacion empresas\n0. Para salir.");
                a = Convert.ToInt32(Console.ReadLine());
                if (a == 1)
                {
                    Console.WriteLine("Ingrese el nombre de la empresa");
                    string nombre = Console.ReadLine();
                    Console.WriteLine("Ingrese el rut de la empresa");
                    string       rut          = Console.ReadLine();
                    Empresa      empresa      = new Empresa(nombre, rut);
                    Division     division     = new Division("Nombre Division", new Persona("Nombre 1", "Apellido 1", "Rut 1", "Encargado Division"));
                    Area         area         = new Area("Nombre Area", new Persona("Nombre 2", "Apellido 2", "Rut 2", "Encargado Area"));
                    Departamento departamento = new Departamento("Nombre Departamento", new Persona("Nombre 3", "Apellido 3", "Rut 3", "Encargado Departamento"));
                    Seccion      seccion      = new Seccion("Nombre Seccion", new Persona("Nombre 4", "Apellido 4", "Rut 4", "Encargado Seccion 4"));
                    Bloque       bloque_1     = new Bloque("Nombre bloque 1", new Persona("Nombre 5", "Apellido 5", "Rut 5", "Cargo 5"));
                    Bloque       bloque_2     = new Bloque("Nombre bloque 2", new Persona("Nombre 6", "Apellido 6", "Rut 6", "Cargo 6"));
                    bloque_1.Personal.Add(new Persona("Nombre 7", "Apellido 7", "Rut 7", "Empleado 1"));
                    bloque_1.Personal.Add(new Persona("Nombre 8", "Apellido 8", "Rut 8", "Empleado 2"));
                    bloque_2.Personal.Add(new Persona("Nombre 9", "Apellido 9", "Rut 9", "Empleado 1"));
                    bloque_2.Personal.Add(new Persona("Nombre 10", "Apellido 10", "Rut 10", "Empleado 2"));
                    seccion.Lista_Bloques.Add(bloque_1);
                    seccion.Lista_Bloques.Add(bloque_2);
                    departamento.Lista_Secciones.Add(seccion);
                    area.Lista_Departamentos.Add(departamento);
                    division.Lista_Areas.Add(area);
                    empresa.Lista_de_divisiones.Add(division);
                    Lista_empresas.Add(empresa);
                    Console.WriteLine("Empresa creada correctamente");
                }
                else if (a == 2)
                {
                    try
                    {
                        FileStream      fs        = new FileStream("Empresas.bin", FileMode.Open);
                        BinaryFormatter formatter = new BinaryFormatter();
                        Lista_empresas = (List <Empresa>)formatter.Deserialize(fs);
                        Console.WriteLine("Empresas agregadas correctamente");
                        fs.Close();
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("No hay empresas creadas, cree una.");
                        Console.WriteLine("Ingrese el nombre de la empresa");
                        string nombre = Console.ReadLine();
                        Console.WriteLine("Ingrese el rut de la empresa");
                        string       rut          = Console.ReadLine();
                        Empresa      empresa      = new Empresa(nombre, rut);
                        Division     division     = new Division("Nombre Division", new Persona("Nombre 1", "Apellido 1", "Rut 1", "Encargado Division"));
                        Area         area         = new Area("Nombre Area", new Persona("Nombre 2", "Apellido 2", "Rut 2", "Encargado Area"));
                        Departamento departamento = new Departamento("Nombre Departamento", new Persona("Nombre 3", "Apellido 3", "Rut 3", "Encargado Departamento"));
                        Seccion      seccion      = new Seccion("Nombre Seccion", new Persona("Nombre 4", "Apellido 4", "Rut 4", "Encargado Seccion 4"));
                        Bloque       bloque_1     = new Bloque("Nombre bloque 1", new Persona("Nombre 5", "Apellido 5", "Rut 5", "Cargo 5"));
                        Bloque       bloque_2     = new Bloque("Nombre bloque 2", new Persona("Nombre 6", "Apellido 6", "Rut 6", "Cargo 6"));
                        bloque_1.Personal.Add(new Persona("Nombre 7", "Apellido 7", "Rut 7", "Empleado 1"));
                        bloque_1.Personal.Add(new Persona("Nombre 8", "Apellido 8", "Rut 8", "Empleado 2"));
                        bloque_2.Personal.Add(new Persona("Nombre 9", "Apellido 9", "Rut 9", "Empleado 1"));
                        bloque_2.Personal.Add(new Persona("Nombre 10", "Apellido 10", "Rut 10", "Empleado 2"));
                        seccion.Lista_Bloques.Add(bloque_1);
                        seccion.Lista_Bloques.Add(bloque_2);
                        departamento.Lista_Secciones.Add(seccion);
                        area.Lista_Departamentos.Add(departamento);
                        division.Lista_Areas.Add(area);
                        empresa.Lista_de_divisiones.Add(division);
                        Lista_empresas.Add(empresa);
                        Console.WriteLine("Empresa creada correctamente");
                        Console.WriteLine("Empresa agregada correctamente");
                    }
                }
                else if (a == 3)
                {
                    if (Lista_empresas.Count() == 0)
                    {
                        Console.WriteLine("No hay empresas creadas.");
                    }
                    else
                    {
                        foreach (var item in Lista_empresas)
                        {
                            Console.WriteLine(item.Informacion());
                        }
                    }
                }
                else if (a == 0)
                {
                    FileStream      fs        = new FileStream("Empresas.bin", FileMode.Create);
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(fs, Lista_empresas);
                    fs.Close();
                    break;
                }
                else
                {
                    Console.WriteLine("Opcion incorrecta, intente nuevamente");
                }
            }
        }