private static HashSet <Periodo> ProcesarIntersecciones(HashSet <Periodo> periodos)
        {
            HashSet <Periodo> salida = new HashSet <Periodo>();
            List <Periodo>    copia  = periodos.ToList();

            foreach (var item in periodos)
            {
                //Se elimina el propio elemento para evitar iterar sobre el mismo
                copia.Remove(item);
                foreach (var item2 in copia)
                {
                    Periodo interseccion = item.Intersect(item2);
                    if (interseccion != null)
                    {
                        salida.Add(interseccion);
                    }
                }
            }
            return(salida);
        }
        private static HashSet <Periodo> LeerFichero(string rutaCompleta)
        {
            HashSet <Periodo> periodos = new HashSet <Periodo>();

            try
            {
                var reader = new StreamReader(File.OpenRead(rutaCompleta));
                while (!reader.EndOfStream)
                {
                    var line   = reader.ReadLine();
                    var values = line.Split(';');

                    Periodo periodo = new Periodo(values[0].Trim(), values[1].Trim(), values[2].Trim());

                    if (periodo.IsValid())
                    {
                        if (periodos.Add(periodo))
                        {
                            Console.WriteLine("\tPeriodo añadido al conjunto-> Id : {0} | Ini: {1} | Fin: {2}", periodo.Id, periodo.Ini, periodo.Fin);
                        }
                        else
                        {
                            Console.WriteLine("\tPeriodo ya existente en el conjunto-> Id : {0} | Ini: {1} | Fin: {2}", periodo.Id, periodo.Ini, periodo.Fin);
                        }
                    }
                    else
                    {
                        Console.WriteLine("\tPeriodo incorrecto, no se añade al conjunto-> Id : {0} | Ini: {1} | Fin: {2}", periodo.Id, periodo.Ini, periodo.Fin);
                    }
                }
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine("No se ha encontrado el fichero especificado, por favor, revise si el fichero existe y la ruta está bien indicado en el fichero de configuracion");
            }
            return(periodos);
        }
Exemple #3
0
 public bool Equals(Periodo obj)
 {
     return((Ini.Equals(obj.Ini) && Fin.Equals(obj.Fin)) || Id.Equals(obj.Id));
 }