我正在用C#编写程序。该程序控制物理过滤轮,其具有可互换的轮A至H.每个轮可以容纳8个过滤器。我希望用户能够为每个轮子中的每个过滤器存储友好名称(总共64个)。设备和程序能够识别车轮ID(A-H)和过滤器位置(1-8),因此存储这64个名称的最佳方式是什么,并且能够通过ID和POS引用它们。我可以为每个创建一个用户设置但是有两个问题:1)每个登录到机器的用户(我认为)的名称都不相同,以及2)为了以编程方式访问特定名称我必须使用一个巨大的案例陈述。或者有没有办法通过名称访问设置?像这样..?
char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";
string SettingIWant = WheelID.ToString() + FilterPos.ToString();
Properties.Settings[SettingIWant].Text = NewName;
答案 0 :(得分:2)
好吧,我只是愚蠢而忽略了访问设置......
string SettingToChange = WheelID.ToString() + Position.ToString();
Settings1.Default[SettingToChange] = NewName;
Settings1.Default.Save();
它运作得很好。唯一的问题是存储的值对于每个用户都不一样,但他们只需要处理它!
答案 1 :(得分:1)
好吧,你可以采用数据库方法。
“内存中”解决方案是Dictionaries。
char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";
string SettingIWant = WheelID.ToString() + FilterPos.ToString();
Dictionary<string, string> properties = new Dictionary<string, string>()
properties.Add(SettingIWant, NewName);
Ant然后您可以使用括号语法
访问数据properties[SettingIWant]
答案 2 :(得分:0)
当然有。只需覆盖[]
运算符。
答案 3 :(得分:0)
行。我只做了一些极少的研究,这就是我认为你想做的事情。
首先,除了使用System.Collections.Specialized.StringDictionary
之外,实施Rodrigo Garcia的Dicitonary事物。这是可以添加到设置文件中的类型之一。
设置应用程序设置时,如果在列表中没有看到,请在“类型”下选择“浏览...”。
如果集合发生变化,请确保始终将更改写出来!