在我的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语句效率低下
答案 0 :(得分:2)
您可以按名称访问设置,如此。
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();