private string GerarTabelaDeFrequencia()
        {
            List <KeyValuePair <string, string> > CamposTabelaFrequencia = new List <KeyValuePair <string, string> >();

            ValoresDistintos.ForEach(valor =>
            {
                CamposTabelaFrequencia.Add(new KeyValuePair <string, string>(valor.Key.ToString(), valor.Value.ToString()));
            });
            return(ClassToHTML.MontarTabela(CamposTabelaFrequencia, "class='table '"));
        }
        public override float Calcular()
        {
            Valores = Valores.ToList().OrderBy(x => x).ToList();
            string ValoresCSV = String.Join(",", Valores);

            Passos.WriteLineAsyncCounter($"{Titulo("Ordene os dados (K):")} {GerarTabelaDeFrequencia()}");

            NumeroDeElementos = Valores.Count;
            ValorMinimo       = CalcularValorMinimo(Valores);
            ValorMaximo       = CalcularValorMaximo(Valores);

            Amplitude = CalcularAmplitudeA(ValorMinimo, ValorMaximo);
            if (Simples)
            {
                QuantidadeIntervalos = ValoresDistintos.Count();
            }
            else
            {
                QuantidadeIntervalos = CalcularQuantidadeIntervalosK(NumeroDeElementos);
            }
            Intervalo = CalcularTamanhoIntervaloH(Amplitude, QuantidadeIntervalos);

            CalcularTodosOsIntervalos();

            Moda.Calcular();
            //Passos.Append(Moda.Passos.ToString());

            Mediana.Calcular();
            //Passos.Append(Mediana.Passos.ToString());

            DesvioPadrao.Calcular();
            //Passos.Append(DesvioPadrao.Passos.ToString());

            Variancia.Calcular();
            //Passos.Append(Variancia.Passos.ToString());

            Media.Calcular();
            //Passos.Append(Media.Passos.ToString());

            CoeficienteVariacao.Calcular();

            Passos.Close();
            return(0f);
        }