c# – 如何过滤字典以获得具有唯一值的项目?

前端之家收集整理的这篇文章主要介绍了c# – 如何过滤字典以获得具有唯一值的项目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您认为我没有做过足够的研究,请先询问我

问题
刚刚遇到了业务需求,我们必须确保字典中的值是唯一的.即,我们应该过滤字典,这种过滤的结果应该具有唯一值的键值对.

顺便说一下,它是一个带字符串值和字符串键的简单字典.为了澄清更多,下面是样本输入和预期输出值 –
sourceDictionary将具有如下值(仅为了表示数据,在语法上不正确) – {{“Item1”,“Item One”},{“Item11”,{“Item2”,“项目二“},{”Item22“,”Item Two“}}对于此输入,filteredDictionary应如下所示 – {{”Item1“,”Item One“},{”Item2“,”Item Two“}}

我提出的解决方案是有效的

var sourceDictionary = serviceAgent.GetSampleDictionary(); // Simplified for brevity  
    var filteredDictionary =  
        sourceDictionary.GroupBy(s => s.Value)  
            .Where(group => @group.Any())  
            .Select(g => g.First())  
            .ToDictionary(kvp => kvp.Key,kvp => kvp.Value);


我对它做了太多的逻辑吗?或者,换句话说,有一个更简单的方法吗?

解决方法

这一行:
.Where(group => @group.Any())

是不必要的,因为你无论如何都不会得到任何空组. (也不确定’@’的含义.)

除此之外,实际上并没有更简单的方法.

猜你在找的C#相关文章