【发布时间】:2012-07-25 15:24:23
【问题描述】:
我有两种不同类型的字典 Dictionary<int, Fooclass> oldDic 和 Dictionary<int, string> barList newDic 。现在我需要比较两个字典中的值。例如键可以在
- oldDic : 1,2,3
- newDic : 1,2,3,4
- 预期输出:4
现在我需要根据它们的键比较两个字典 任何帮助将不胜感激。
编辑: 输出应该像第二个字典(newDic),但这将包含第二个字典(oldDic)的一些值。例如
1,"fooString" 其中 fooString 是 Fooclass 的 someproperty 中的某个值...。 为了更清楚,请参阅这对我不起作用
var addedList = from list1 in baseListDic
join list2 in trackerlist on list1.Key equals list2.Key
select new { key = list1.Key, value = list1.Value._lead };
这里 baseListDic 是 oldDic 而 trackerlist 是 newDic.... 如果我仍然不清楚,请告诉我...
【问题讨论】:
-
IEnumerable
结果 = newDic.Keys.Except(oldDic.Keys) -
@huMptyduMpty 好吧,我已经尝试过了,但是这个只给了我 4 个输出。但是我还需要 fooClass 的一些值...请参阅上面帖子中的新编辑..
-
您的新编辑似乎与您的原始示例不一致。在您的原始文件中,您返回的是 newdic 但不是旧 dic 中的键,但在第二个示例中,您似乎返回 olddic 中具有 newdic 键的值?也许创建一个带有一些示例字典的小程序来演示您想要什么?没有人会反对你给他们一些可以轻松运行的代码...... :)
-
@Chris 好吧,是的,你是对的......根据第一个例子,我的要求似乎不同......但在我的新编辑中......我写了一些匹配两个字典中类似键的东西,比如内部连接,这是一个失败的代码,所以我只是发布了这个作为示例,我的输出应该是什么......
标签: c# .net linq linq-to-objects