为了清楚起见,假设我们有学生和类(class),这是一种多对多的关系。

我有一个字典,其中键是学生 id,而 Enumerable 是一个类的集合(假设我们只有 id),我想将其恢复为 classId、students 的字典

有没有办法用 Linq 做到这一点?我可以想出一种用循环来做到这一点的方法,但我相信有一种方法可以做到这一点。

最佳答案

var newDic = dic
   .SelectMany(pair => pair.Value
                           .Select(val => new { Key = val, Value = pair.Key }))
   .GroupBy(item => item.Key)
   .ToDictionary(gr => gr.Key, gr => gr.Select(item => item.Value));

关于c# - 将 Dictionary<int, Enumerable> 转换为 Dictionary<int, Enumerable> 反转内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1324912/

10-16 09:02