我有<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