联盟词典

时间:2012-10-08 12:14:07

标签: c# linq dictionary

我有两个Dictionary<Person,Boolean>。 dict a contains:

Person A -> false
Person B -> true,
Person C -> false;

dict b包含:

Person A -> true;
Person D -> false;

我希望得到一个结果,其中包含所有人一次,并设置布尔值为ture,如果一个人在两个列表中都包含true。

如何使用dict.Union()解决此问题?

谢谢Kooki

1 个答案:

答案 0 :(得分:4)

听起来你可以使用:

var result = first.Union(second)
                  .GroupBy(x => x.Key)                // Group by dictionary keys
                  .ToDictionary(g => g.Key,           // Key for new dictionary
                                g => g.Any(p => p.Value)); // Any true values?