簡體   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