如何在字典中连接和删除重复项,如下所示:
Item1: Key=1, Value=test1
Item2: Key=2, Value=test2
Item3: Key=3, Value=test1
Item4: Key=4, Value=test3
Item5: Key=5, Value=test4
建立一个像这样的新词典:
Item1: Key=1-3, Value=test1
Item2: Key=2, Value=test2
Item4: Key=4, Value=test3
Item5: Key=5, Value=test4
我设法使用这个来复制:myDictionary.GroupBy(x => x.Value).Where(x => x.Count() > 1);
但我无法从中找到构建新词典的正确方法。
答案 0 :(得分:4)
这适用于将所有重复项目带入具有共享密钥的新字典:
var dict = new Dictionary<string, string>
{
{"1", "test1"},
{"2", "test2"},
{"3", "test1"}
};
var groupedKeyMap = dict.GroupBy(x => x.Value)
.Where(x => x.Count() > 1)
.ToDictionary(x => string.Join("-", x.Select(y => y.Key)),
x => x.Key);
如果您需要重复和非重复键值对,请删除Where
子句:
var groupedKeyMap = dict.GroupBy(x => x.Value)
.ToDictionary(x => string.Join("-", x.Select(y => y.Key)),
x => x.Key);