嗨我有两个字典,我需要找到一种方法将它们连接在一起。这里有两种字典类型。加入两个字典
IDictionary<string, byte[]> dictionary1
IDictionary<IFileShareDocument, string> dictionary2
出这两个库的我要创建第三个字典,像这样
IDictionary<IFileShareDocument, byte[]> dictionary3
两个字典有相同数量的项目和他们两人的字符串属性是连接点。
我想什么是能够写一些东西,会做somethign这样的:
dictionary1.value join with dictionary2.key
where dictionary1.key == dictionary2.value
This statement should result in dictionary3.
有什么办法,我可以做到这一点,我似乎无法找到一个方法来做到这一点?
第一个解决方案比第二个解决方案执行*显着*更差。连接是O(N + M),笛卡尔积是O(N * M)。只要相关密钥已经具有合理的哈希码和相等实现(他们这样做),假设你实际上想要一个Join,根本就没有任何真正的笛卡尔乘积优势。 – Servy
@Servy感谢您指出这一点;我已经交换了我的解决方案,并附上说明为什么'join'更好。 –
为什么要包含其他解决方案呢?它没有优点,只有缺点。在那里获得什么? – Servy