3

我的项目中有一个键值对列表。我想搜索List<KeyValuePair<String,object>>并找到任何重复的键,并使用 C# lambda 表达式获取该键和值。有人知道该怎么做吗?

这是我的示例代码

list = List<KeyValuePair<string, Object>>

我需要搜索此列表并KeyValuePair<string, Object>使用重复键(字符串)获取任何项目。

任何帮助将不胜感激

4

1 回答 1

7
IEnumerable<IGrouping<string, KeyValuePair<string, object>>> duplicateKVPsByKey = list.GroupBy(kvp => kvp.Key).Where(g => g.Count() > 1);

这会按键对 KVP 列表进行分组,然后将其过滤到仅具有大于 1 的 KVP 组。

从那里您可以遍历列表并查看每个重复键并查看关联的对象。

这将打印出所有的键和与之关联的对象

foreach (var group in duplicateKVPsByKey)
{
    Console.WriteLine(group.Key);
    foreach (var kvp in group)
    {
        Console.WriteLine(kvp.Value.ToString());
    }
}
于 2013-04-17T01:44:59.387 回答