如何检查字典中是否存在键,如果使用.ToDictionary()时存在,请替换其值

问题描述 投票:0回答:1

我有以下字典:

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()的同时将其值替换为新获得的值

谢谢。

c# dictionary httpwebresponse
1个回答
0
投票

您执行此操作的一种方法是通过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()获取该组中的最后一个元素。那将是遇到的最后一件事。因为您说过要在找到重复的键时“替换旧值”,所以最终会在结果字典中遇到遇到的最后一个值。

© www.soinside.com 2019 - 2024. All rights reserved.