我正在查看特定服务的注册表项。所以我创建了一个类,所以我可以为特定服务的regKeys创建我的对象。
有多个服务都具有针对该特定服务的多个注册密钥。
我的班级
class Component
{
private String regkey;
private String regpath;
//regkey
private String getRegkey(String name)
{ return name; }
public string regkeyProp
{
get { return (regkey); }
set { regkey = getRegkey(value); }
}
//regpath
private String getRegPath(String name)
{ return name; }
public string regPathProp
{
get { return (regpath); }
set { regpath = getRegPath(value); }
}
}
所以现在我已经定义了我的类,所以我可以创建我的对象。所以我的一项服务是 同步服务。所以我创建了一个名为sync的新对象。
Component SYNC= new Component();
我的其他功能扫描认为他阵列并抓住每一个regkey&同步服务的路径。
当我构建Sync对象时,我正在分配我的regkeyProperty。
Sync.regkeyProps = regkeyValue;
所以这里的问题是一个同步服务有很多regkeys,当它通过数组进行for循环时,它每次只存储最后一个reg键。
我很难说我能做到这一点。我会假设某种阵列?
答案 0 :(得分:0)
某种形式的IEnumerable
可能是您最好的选择。根据您拥有它们后想要执行的操作,您可以使用List<T>
(非常好我的默认值)或IEnumberable
接口的任何其他具体实现。
尽管您已经为“组件”课程获得了什么,但是您可以(可能在进行更改之前确保自己确定)更好地使用Dictionary<string, List<string>>
而不是创建自定义类使用值列表保存相当于Key的键。
你会得到这样的名字(替换你的getRegPath
)
\\Assuming Components is a Dictionary as mentioned and "name" is the string you pass into your method
Components[name]
这将使您获得由Key“name”(在您的情况下是注册表项)定义的字典中的元素,并且您可以访问属性,如:Components[name].Value[0]
或任何其他访问方法List<T>
再次,YMMV,所以在做出改变之前,请确保词典最适合你。
答案 1 :(得分:0)
我不能说我完全理解,但这是一个可能有所帮助的建议。
Sync.regkeyProps = regkeyValue;
您可以使用List并添加到列表中,而不是使用数组。
所以你可以做到
Sync.regkeyProps.Add(regkeyValue),它将插入到数组中而不必担心索引。
答案 2 :(得分:0)
我猜测你究竟是在问什么,但我想你要保留一个超过1 Component
个对象的列表。你可以通过这样做来实现这个目标:
List<Component> syncItems = new List<Component>();
foreach (/* not sure how you loop over the items */)
{
Component sync = new Component();
sync.regKeyProp = ...
syncItems.Add(sync);
}
另外作为旁注,我建议从Component
中选择一个不同的名称,因为Component
已经是.NET中大量使用的一些概念的名称