如果您认为我没有做过足够的研究,请先询问我
问题 刚遇到业务需求,我们必须确保字典中的值是唯一的.即,我们应该过滤字典,这种过滤的结果应该具有唯一值的键值对.
顺便说一下,它是一个带字符串值和字符串键的简单字典.为了澄清更多,下面是示例输入和预期输出值 -
sourceDictionary将具有如下值(仅为了表示数据,而不是语法正确) - {{"Item1","Item One"},{"Item11 ","项目一"},{"Item2","第二项"},{"Item22","第二项"}}对于此输入,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);
Run Code Online (Sandbox Code Playgroud)
问题 我是否在制作太多逻辑?或者,换句话说,有一个更简单的方法吗?
这一行:
.Where(group => @group.Any())
Run Code Online (Sandbox Code Playgroud)
是不必要的,因为你无论如何都不会得到任何空组.(也不确定'@'的含义.)
除此之外,实际上并没有更简单的方法.