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}' "); }