嗨我有兩個字典,我需要找到一種方法將它們連接在一起。這裏有兩種字典類型。加入兩個字典
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