C#注册表中如何从列表中添加多个值

时间:2018-07-14 08:21:28

标签: c# c#-4.0 registry

我有2个列表字符串。第一个是值的名称,第二个是值的数据。 我想在一个键上设置多个值。我的代码中的值和数据都按顺序排列。所以如果我打电话...
nameval[0]namedata[0],它将将此数据分配给应分配的值。

我的问题是当我使用for循环时,它没有设置值。但是,当我将整数的值设置为特定值时,它将设置该值。

List<string> namevalue = new List<string>();
List<string> namedata =new List<string>();
for (int x = 0; x == namevalue.Count; x++) 
{
    RegistryKey thiskey = Registry.CurrentUser;
    thiskey = thiskey.CreateSubKey("what");
    thiskey.Setvalue(namevalue[x], Convert.FromBase64String(namedata[x]), RegistryValueKind.Binary);
}  

edit2:我也尝试这样做,但是同样的事情发生了。它没有设置值。

        string[] rarted = { "1", "2", "3" };
        string[] rarted2 = { "4", "5", "5" };
        RegistryKey subKey = Registry.CurrentUser;
        subKey = subKey.CreateSubKey("somekey", true); 
        for (int i = 0; i >= 2; i++)
        {
            subKey = subKey.OpenSubKey("somekey", true);
            subKey.SetValue(rarted[i], rarted2[i]);
        }

1 个答案:

答案 0 :(得分:1)

您的for循环有问题:

for(a;b;c){
  d;
}

等效于:

a;
while(b)
{
  d;
  c;
}

b告诉您“我应该再循环一次”的条件吗?您的示例永远不会陷入困境。 所以你应该是:

for (int x = 0; x < namevalue.Count; x++)