首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Dictionary<int、Enumerable>转换为Dictionary<int、Enumerable>反转内容

将Dictionary<int、Enumerable>转换为Dictionary<int、Enumerable>反转内容
EN

Stack Overflow用户
提问于 2009-08-24 21:38:22
回答 2查看 1.3K关注 0票数 4

为了清楚起见,我们假设我们有学生和班级,这是一个多对多的关系。

我有一个Dictionary,其中键是学生id,Enumerable是类的集合(假设我们只有id ),我想把它还原成classId的Dictionary,

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-24 21:58:39

代码语言:javascript
复制
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));
票数 7
EN

Stack Overflow用户

发布于 2009-08-24 22:11:14

这应该可以做到:

代码语言:javascript
复制
var invertedDic = dic
    .SelectMany(x => x.Value, (pair, value) => new {key = pair.Key, value = value})
    .GroupBy(x => x.Value, x => x.Key, (value, key) => new {value, key})
    .ToDictionary(x => x.Value, x => x.Key);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1324912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档