Vin*_*agi 11
对于多字符串值,我会这样做.
key.SetValue("MultipleStringValue", new string[] {"One", "Two", "Three"});
Run Code Online (Sandbox Code Playgroud)
如果它是单个值,那么沃尔夫冈提到你应该阅读现有的并追加.
小智 6
根据上面 Vinayak 的回答,如果您想附加一个值,您需要读取现有值并使用它。
所以:
var registryValue = key.GetValue("KeyName");
Run Code Online (Sandbox Code Playgroud)
获取现有值,该值应返回 REG_MULTI_SZ 的字符串数组。然后只需附加新值(或者交换现有值,如果您愿意的话)。您可以按照您喜欢的任何方式执行此操作 - 从数组创建一个列表并向其添加新值,使用循环创建一个新的字符串数组,使用 IEnumerable.Concat...
var stringList = new List<string>(registryValue as string[]);
stringList.Add("NewValue");
key.SetValue("KeyName", stringList.ToArray());
Run Code Online (Sandbox Code Playgroud)
显然,您希望在这个小示例周围放置一些防御性编码 - 确保您实际上返回的是字符串数组等......