首页 > 解决方案 > 在c#中找到具有相同值的字典中的最小键

问题描述

嗨,我想对我的 c# 字典进行排序,以在 c# 字典中找到具有相同值的最低键,我的字典值看起来像

    [4, 29]
    [7, 29]
    [10, 32]
    [1, 32]
    [8, 32]
    [9, 38]
    [2, 38]

我想要这样的结果>

    4 is the lowest key for the same value 29
    1 is the lowest key for the same value 32
    2 is the lowest key for the same value 38

我已经尝试过 foreach 循环,但它似乎非常困难和复杂是否有一些简单的方法可以在 c# 中做到这一点提前谢谢

标签: c#dictionarykey-value-coding

解决方案


这是您的问题的解决方案:

d.GroupBy(kvp => kvp.Value)
    .Select(grouping => $"{grouping.OrderBy(kvp => kvp.Key).First()} is the lowest key for the same value {grouping.Key}");

它使用 LINQ 按值对字典条目进行分组,然后在每个分组中找到最小的键。


推荐阅读