首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特定键C#字典的和值

特定键C#字典的和值
EN

Stack Overflow用户
提问于 2016-07-07 18:29:33
回答 4查看 2K关注 0票数 3

我有一个具有两个类似键的字典,其中一个是拼写错误的,因此它创建了另一个键,我想要对它的值进行求和,并删除拼写错误的键/值对。

如果我有一个部门字典,以部门名称为键,以该部门的人员人数为值,我想将“市场营销”和“市场营销”的值相加,并删除拼错的键/值对“营销”。

代码语言:javascript
复制
        var departments = new Dictionary<string, int>()
        {
            { "HR", 33 },
            { "Management", 8 },
            { "Marketing", 21 },
            { "Marketin", 4 },
            { "Sales", 44 }
        };

我希望这本字典看起来像这样:

代码语言:javascript
复制
        var departments = new Dictionary<string, int>()
        {
            { "HR", 33 },
            { "Management", 8 },
            { "Marketing", 25 },
            { "Sales", 44 }
        };

字典已经创建好了,所以我只使用初始化来进行说明。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-07-07 18:34:38

代码语言:javascript
复制
departments["Marketing"] += departments["Marketin"];

departments.Remove("Marketin");
票数 4
EN

Stack Overflow用户

发布于 2016-07-07 18:49:06

下面是我关于更多“泛型”方法的草图:

代码语言:javascript
复制
var normalisedDepartments = 
   departments.GroupBy(x => Normalise(x.Key), y => y.Value)
             .ToDictionary(x => x.Key, y => y.Sum());

    private static string Normalise(string key)
    {
        if (key == "Marketin")
        {
            return "Marketing";
        }
        return key;
    }

然后,您可以调整规范化方法,以便它识别其他格式错误的键,如果有更多的这些键。

票数 2
EN

Stack Overflow用户

发布于 2016-07-07 18:36:24

下面是一个代码示例,它说明了您可以使用的字典功能来做您想做的事情。

至于您需要使用这些功能的哪一个组合来完成您的确切目的,我将把它作为练习留给您。如果你需要更多的帮助。留下一条评论,解释你不明白的事情。

代码语言:javascript
复制
//how to get a value in your dictionary
string myValue = departments["Marketin"];

//how to update a value in your dictionary
departments["Marketing"] = 5;

//how to remove a value in your dictionary
departments.Remove("Marketin");

//how to iterate over your dictionary
foreach(var department in departments)
{
    //only print the value if it's "Marketin"
    if(department.Key == "Marketin")
    {
        Console.WriteLine(department.Value);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38252832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档