static public DicDiffResult <TK, TV> DicDiff <TK, TV>(IReadOnlyDictionary <TK, TV> dic1, IReadOnlyDictionary <TK, TV> dic2) { var res = new DicDiffResult <TK, TV>(); foreach (var t in dic1) { if (!dic2.ContainsKey(t.Key)) { res.Dic1ButNotInDic2[t.Key] = t.Value; } } foreach (var t in dic2) { if (!dic1.ContainsKey(t.Key)) { res.Dic2ButNotInDic1[t.Key] = t.Value; } } return(res); }
public void DicDiffDebug(Config anotherCfg) { var diffActiveAppProjectGenerators = DicDiffResult <string, IvPluginGenerator> .DicDiff(this._DicActiveAppProjectGenerators, anotherCfg._DicActiveAppProjectGenerators); Debug.Assert(0 == diffActiveAppProjectGenerators.Dic1ButNotInDic2.Count); Debug.Assert(0 == diffActiveAppProjectGenerators.Dic2ButNotInDic1.Count); var diffGenerators = DicDiffResult <string, IvPluginGenerator> .DicDiff(this.DicGenerators, anotherCfg.DicGenerators); Debug.Assert(0 == diffGenerators.Dic1ButNotInDic2.Count); Debug.Assert(0 == diffGenerators.Dic2ButNotInDic1.Count); var diffNodes = DicDiffResult <string, ITreeConfigNode> .DicDiff(this._DicNodes, anotherCfg._DicNodes); Debug.Assert(0 == diffNodes.Dic1ButNotInDic2.Count); Debug.Assert(0 == diffNodes.Dic2ButNotInDic1.Count); var diffPlugins = DicDiffResult <string, IvPlugin> .DicDiff(this.DicPlugins, anotherCfg.DicPlugins); Debug.Assert(0 == diffPlugins.Dic1ButNotInDic2.Count); Debug.Assert(0 == diffPlugins.Dic2ButNotInDic1.Count); var diffPluginLists = DicDiffResult <vPluginLayerTypeEnum, List <PluginRow> > .DicDiff(this.DicPluginLists, anotherCfg.DicPluginLists); Debug.Assert(0 == diffPluginLists.Dic1ButNotInDic2.Count); Debug.Assert(0 == diffPluginLists.Dic2ButNotInDic1.Count); }