我有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]);
}
答案 0 :(得分:1)
您的for
循环有问题:
for(a;b;c){
d;
}
等效于:
a;
while(b)
{
d;
c;
}
b
告诉您“我应该再循环一次”的条件吗?您的示例永远不会陷入困境。
所以你应该是:
for (int x = 0; x < namevalue.Count; x++)