【发布时间】:2015-02-13 15:35:07
【问题描述】:
我有一个方法可以返回从事某些项目的技术人员组,例如:
project 1 | John
project 1 | Tim
project 2 | John
project 2 | Dave
我最初尝试创建一个字典,它通常是我的键值对的首选集合,但在这种情况下,我无法使用它,因为我不能有重复的键(项目)。我可以使用什么替代方案?
我唯一的想法是创建一个Dictionary<Project, List<Technicians>>,但有什么更简单的方法吗?
【问题讨论】:
-
字典确保你不会有重复的键,有什么问题?
-
@VsevolodGoloviznin 问题是我想要一个重复的键,但仍然有唯一的键值对(如果我可以限制那部分)。
-
Dictionary<Project, List<Technicians>>看起来不错。但是,如果您真的不需要Project作为密钥(即您不需要让某个项目的所有技术人员),那么您可以尝试List<Tuple<Project, Technician>> -
这个数据结构被称为multimap,不幸的是,.NET 类库中没有。
-
现在您可能已经很清楚了,但是您所描述的通常被认为是每个键具有多个值。我想在技术上是一样的,但至少在我看来,谈论“重复键”听起来倒退了,更像是错误条件或无效状态。
标签: c# dictionary collections