问题描述
我是键值操作的初学者。 我目前有2本字典。第一个具有原始键和值的字典。
var firstDict = new Dictionary<string,int>();
- 键:a,值:1
- 键:b,值:2
- 键:c,值:1
- 键:d,值:3
- 键:e,值:5
- 键:f,值:1
- 键:g,值:4
- key:h,值:2
- 键:i,值:1
- 键:j,值:2
下面是我的第二本字典。
Dictionary<int,string> secondDict = firstDict
.GroupBy(k => k.Value)
.ToDictionary(g => g.Key,g => string.Join(",",g.Select(k => k.Key)));
这是第二本词典打印的内容。
- 键 1 :值: a,c,f,i
- 键 2 :值: b,h,j ...
所以我现在要做的是 将每个 键值从第二本字典中分离出来,并创建动态字典/列出如果它们满足某些条件if(kv.Value > 3){store in new Dictionary}
Key_1_Dict
a,c,f,i
Key_2_Dict
b,h,j
Key_3_Dict ......
我可以知道是否有办法吗?
解决方法
如果我了解您的观点,则可以使用其中过滤数据:
Dictionary<int,string> secondDict = firstDict.Where(x => x.Value > 3)
.GroupBy(k => k.Value)
.ToDictionary(g => g.Key,g => string.Join(",",g.Select(k => k.Key)));
更新
对于第三本字典:
Dictionary<int,string> thirdDict = secondDict
.Where(x => x.Value.Split(',').Length > 2 && x.Value.Split(',').Length <= 4)
.ToDictionary(g => g.Key,g => g.Value);