我有以下字典:
private static Dictionary<string, string> loginDetails = new Dictionary<string, string>();
我有以下字符串:
result = rdr.ReadToEnd();
string parseResult = result.Replace(",", System.Environment.NewLine).Replace("\"", "")
.Replace("{", "").Replace("}", "");
我通过从字符串parseResult获取键和值来更新代码中的字典,如下所示:
loginDetails = parseResult.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
.ToDictionary(x => x.Split(':')[0], x => x.Split(':')[1]);
[我想知道如何检查字典中是否存在键,如果存在,请在保持.ToDictionary()的同时将其值替换为新获得的值
谢谢。
您执行此操作的一种方法是通过GroupBy
:
var loginDetails = parseResult
.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
.Select(x => x.Split(':'))
.GroupBy(x => x[0])
.ToDictionary(x => x.Key, x => x.Last());
我们将要用作键的东西分组,然后在分组上调用ToDictionary
。当组中有多个值时,请使用Last()
获取该组中的最后一个元素。那将是遇到的最后一件事。因为您说过要在找到重复的键时“替换旧值”,所以最终会在结果字典中遇到遇到的最后一个值。