C # Como percorrer Properties.Settings.Default.Properties alterando os valores

Eu tenho o seguinte código

foreach (SettingsProperty currentProperty in Properties.Settings.Default.Properties)
{
    if (Double.TryParse(GenerateValue()), out result))
    {
        currentProperty.DefaultValue = result.ToString();

        Properties.Settings.Default.Save();
    }
}

Obtém o novo valor de um banco de dados mysql. Se eu adicionar um MessageBox.Show para mostrar o novo valor, ele parece estar funcionando bem, mas na verdade não o salva. Suponho que seja porque estou atribuindo o valor a uma variável ... existe alguma maneira de fazer isso?

Properties.Settings.Default.IndexOf(currentProperty.name).DefaultValue = result

questionAnswers(2)

yourAnswerToTheQuestion