读书人

两个Dictionarylt;int,stringgt;怎么知道B

发布时间: 2012-09-23 10:28:11 作者: rapoo

两个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); 

读书人网 >C#

热点推荐