繁体   English   中英

如何从字典中的不同键获取相同的值?

[英]How to get same values from different keys in a Dictionary?

新手提醒:我对使用 Dictionary 或任何与 KeyValuePair 相关的东西很陌生。
我有一个字典,我向它添加了一些值。

var first_choice_dict = new Dictionary<string, int>();
名称是键,数字是值,表示他们的选择。

Bob, 2
Chad, 1
Dan, 3
Eden, 5
Fred, 1
Greg, 4
Hope, 2
Ivan, 1
Jim, 2

请问是否有办法按相同的值对它们进行排序,然后仅将键移动到新字典(或值也应该没问题),如下所示:

排序

Abe,1
Chad,1
Fred,1
Ivan, 1
......

新词典选择 1
Abe,Chad,Fred,Ivan

您根本不想对它们进行“排序”。 您想按值分组,然后构建一个以选择为键的新字典,作为我建议的值IEnumerable<string>

Dictionary<int, IEnumerable<string>> choiceDict = userChoicesDict
    .GroupBy(kv => kv.Value)
    .ToDictionary(g => g.Key, g => g.Select(kv => kv.Key));

如果您想要一个字符串作为带有逗号分隔名称的值:

Dictionary<int, string> choiceDict = userChoicesDict
    .GroupBy(kv => kv.Value)
    .ToDictionary(g => g.Key, g => string.Join(",", g.Select(kv => kv.Key)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM