我有一本这样的字典:
var dic = Dictionary<Collection<MyObject>, string>
然后我添加一个这样的条目:
dic.Add(myObjColl, "1");
其中 myObjColl 包含单个条目
在第二次运行时,我尝试向 dic 添加另一个条目,其中 myObjColl 有两个条目(其中一个与第一次运行中的条目相同)并且我得到一个密钥已经存在的异常。
我在这里想念什么?我希望字典键是一个集合,并且具有不同条目数的两个集合肯定不能相同。
编辑:发生的事情是 myObjColl 在 foreach 外部初始化并在第二次迭代期间更新。所以我认为是一个包含两个条目的新集合实际上是旧的一个条目集合,添加了一个额外的条目。
详细说明我的问题:
我有一个产品行对象的集合。每个都有一个由键值对集合组成的产品标识对象:
Collection<ProductKeyValuePair> productIdentification;
myProductRow.ProductIdentification = productIdentification;
然后,我必须构建另一个 ProductKeyValuePairs 集合,定义每个产品行对象的“所有者”(一个产品行对象可以有多个所有者),并且我需要将每个所有者添加到相应的 procuct 行对象中。传统的多对多,其中公共密钥是 KeyValuePair 的集合。
很难解释,但这实际上归结为从大型机上运行的旧系统返回的遗留数据,并且很可能存储在某种分层数据库中:-/