我有一个Dictionary<string, int>
其中字符串是随机的字符集合,int 是该字符串的 ASCII 总和。
例如
["aaaaaaaaab", 971],
["aaaaaaaaba", 971],
["aaaaaaabaa", 971],
["aaaaaabaaa", 971]
我想根据原始字典创建一个新字典,其中新键是原始字典中的值,新值是 List<string>
其中包含所有以 ASCII 和作为键的字符串。
例如
[971, List<string>{ "aaaaaaaaab", "aaaaaaaaba", "aaaaaaabaa", "aaaaaabaaa"}]
我怎样才能实现这个目标?我无法理解所需的步骤。
最佳答案
使用可以 GroupBy
和 ToDictionary
前提是:
- 按旧的
Value
分组
给定 - 项目到新的字典
- 这将是
KeyValuePair
的分组列表从原始字典来看,依次有key
从中选择 (.Select(y => y.Key
)
- 这将是
GroupBy
的值示例
var newDict = old.GroupBy(x => x.Value)
.ToDictionary(x => x.Key, x => x.Select(y => y.Key)
.ToList());
其他资源
Groups the elements of a sequence.
Enumerable.ToDictionary Method
Creates a
Dictionary<TKey,TValue>
from anIEnumerable<T>
.
关于c# - 从旧字典填充新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031854/