C#字典获取具有相同值的所有键

nur*_*rix -3 c# dictionary

我有一本包含键和值的字典。是否可以获取所有具有相同值的Key?

示例1 = 456894、2 = 548962、3 = 548962、4 = 654876,然后获得键2和3,因为它具有相同的值。

Dictionary<int, int> doublechek = new Dictionary<int, int>();

mjw*_*lls 7

一种可能的方法:

var result = doublechek
    .GroupBy(z => z.Value)
    .Where(z => z.Count() > 1)
    .SelectMany(z => z)
    .Select(z => z.Key)
    .ToList();
Run Code Online (Sandbox Code Playgroud)

GroupBy并且Count将得到只有那些重复。SelectMany并且Key将得到的那些的键与重复(即2和3)。