我有<int, bool>,
如何解决以下独特的发现问题?
像1, false; 2 true;... ; 9 true;
我需要找出是否有一个独特的字典。
例如,如果所有除9都是假的,我可以输出9
如何实现这一目标?
我有<int, bool>,
如何解决以下独特的发现问题?
像1, false; 2 true;... ; 9 true;
我需要找出是否有一个独特的字典。
例如,如果所有除9都是假的,我可以输出9
如何实现这一目标?
您可以通过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;
}
如此强大!我第一次看到Linq的力量。对于新手的问题,如果没有这样的项目,结果是什么,NULL? – 2014-12-07 13:21:54
有例外:) – 2014-12-07 13:22:20
有没有办法避免异常? – 2014-12-07 13:23:36
是键连续整数? – 2014-12-07 11:18:25
您可以按值(按IEnumerable对待)进行分组,并检查密钥的数量。 – 2014-12-07 11:19:30