示例#1
0
        public static ZLista crearLista(List <ZContenedor> elementos)
        {
            if (elementos.Count == 0)
            {
                throw new SemanticError("Desarrollor: 'crearLista' no debe ser llamado con 0 elementos");
            }

            var tipoElemento = elementos[0].Origen;


            if (elementos.TrueForAll(c => c.Origen == tipoElemento))
            {
                return(new ZLista(elementos, Dbms.obtenerTeDeUListaDeCache(tipoElemento)));
            }

            var teDeUDiferente = elementos.Find(c => c.Origen != tipoElemento).Origen;

            throw new SemanticError($"Todos los elementos de la lista deben de ser del mismo tipo." +
                                    $" Tipos encontrados: '{tipoElemento.Nombre}', '{teDeUDiferente.Nombre}' ");
        }