如何解决以下独特发现问题?

时间:2014-12-07 11:14:03

标签: c#

我有<int, bool>,

字典

喜欢1, false; 2 true;... ; 9 true;

我需要找出是否有一个独特的。

例如,如果除9之外的所有都是假的,我可以输出9

如何实现这一目标?

1 个答案:

答案 0 :(得分:3)

您可以按Value进行分组,并获取包含一项的小组:

var result = dictionary
            .GroupBy(x => x.Value) 
            .First(g => g.Count() == 1) // get the group
            .First().Key; // get the first pair in the group and it's key

如果没有唯一值,这将抛出异常,为了防止这种情况你可以使用:

var result = dictionary
            .GroupBy(x => x.Value) 
            .FirstOrDefault(g => g.Count() == 1);

if(result != null)
{
    var value = result.First().Key;
}