首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

两个Dictionary<int,string>怎么知道B集合对于A集合来讲变化了哪些

2012-09-23 
两个Dictionaryint,string如何知道B集合对于A集合来讲变化了哪些?如果是两个ListT我就知道,A集合和B集

两个Dictionary<int,string>如何知道B集合对于A集合来讲变化了哪些?
如果是两个List<T>我就知道,A集合和B集合,只要做A∪B-A,就能够得出B集合对于A集合来说哪些元素变化了。
A={[1,a],[4,c],[2,d]}
B={[2,c],[4,c],[1,f]}

A∪B={[1,a],[4,c],[2,d],[2,c],[1,f]}
A∪B-A={[2,c],[1,f]}
但是两个Dictionary<int,string>类型的A集合和B集合,由于int是Key,是不允许重复的吧?
如果要探究B集合对于A集合,哪些元素变化了,该如何操作呢?

[解决办法]
逻辑还是A∪B-A

只是具体操作上加点判断就可以了。

[解决办法]
A={[1,a],[4,c],[2,d]}
B={[2,c],[4,c],[1,f]}
foreach(var aa in B)
{
if(!A.contains(aa))
writeline(aa.tostring());
}
[解决办法]
对于两个比较集合,你只需要从集合B中排除A中所有的元素即为发生变化的,可能是添加,修改,或者删除

如下

C# code
Dictionary<int, string> _A = new Dictionary<int, string>() {                 {1,"1"},                {2,"2"},                {3,"3"}                };                Dictionary<int, string> _B = new Dictionary<int, string>() {                     {1,"6"},                {2,"2"},                {3,"3"}                };                var s=_B.Except(_A); 

热点排行