保存属性.设置.要列出的默认项目,更改值,然后将其保存到文件中

本文关键字:然后 存到文件 保存 设置 项目 默认 属性 | 更新日期: 2023-09-27 18:21:45

在我的Settings.Settings文件中,我有10个bool项,我试图将它们全部保存到列表中,然后迭代它们,更改它们的值,然后将其保存回设置文件,但它不起作用。

下面是一个简短的例子:

    public List<bool> list = new List<bool>();
    list.Add(Properties.Settings.Default.Item0);
    list.Add(Properties.Settings.Default.Item1);
    list.Add(Properties.Settings.Default.Item2);
    list.Add(Properties.Settings.Default.Item3);
    list.Add(Properties.Settings.Default.Item4);
    // ... up to 10

然后我尝试在它们之间迭代:

        for (int i = 0; i < list.Count; i++)
        {
            if (listBox1.GetSelected(i))
            {
                list[i] = true;
            }
            else
            {
                list[i] = false;
            }
        }
        Properties.Settings.Default.Save();  // it sets list items properly but it doesn't actually save it to the user settings file

所以如果我要做这样的事情:

            if (listBox1.GetSelected(0))
            {
                Properties.Settings.Default.Item0 = true;
            }
            else
            {
                Properties.Settings.Default.Item0 = false;
            }
            Properties.Settings.Default.Save();

它会保存它,下次我打开应用程序时,我会得到正确的保存值,但我不想每项

保存属性.设置.要列出的默认项目,更改值,然后将其保存到文件中

都有10个if语句,效率低下

您可以按名称访问设置,就像这样。

Settings.Default["Item1"];

由于你在for循环中有命名约定Item+Incrementing Number,你可以这样做,

for (int i = 0; i < list.Count; i++)
{
    Settings.Default["Item" + i.ToString()] = listBox1.GetSelected(i);
}
Properties.Settings.Default.Save();