日期:2014-05-17  浏览次数:20840 次

这个用法的用意是什么呢?
    Dictionary<string, string> ccms1 = new Dictionary<string, string>();
    ccms1.Add("1","001");
    ccms1.Add("2", "002");
    Dictionary<string, string> ccms2 = new Dictionary<string, string>();
    ccms2.Add("11", "0011");
    ccms2.Add("2", "0022");
    var rtcccms1 = ccms1.Union(ccms2).ToDictionary(a => a.Key, b => b.Value);



       Dictionary<string, string> ccms1 = new Dictionary<string, string>();
    ccms1.Add("1","001");
    ccms1.Add("2", "002");
    Dictionary<string, string> ccms2 = new Dictionary<string, string>();
    ccms2.Add("11", "0011");
    ccms2.Add("22", "002");
    var rtcccms1 = ccms1.Union(ccms2).ToDictionary(a => a.Key, a => a.Value);



为什么用的是ToDictionary(a => a.Key, b => b.Value);
而不是ToDictionary(a => a.Key, a => a.Value);
有什么区别吗?
Dictionary

------解决方案--------------------
一样的,只不过起了两个不同的名字

如下,可能会好理解一点
var rtcccms1 = ccms1.Union(ccms2).ToDictionary(delegate(KeyValuePair<string, string> a) { return a.Key; }, delegate(KeyValuePair<string, string> a) { return a.Value; });

------解决方案--------------------
无区别~~~~~~

只是lambe声明而已
------解决方案--------------------
如果你对delegate 和 lambda表达式不是很清楚的话,可以先补这方面知识。

如果都理解了,那么都上的解答应该也可以了。
------解决方案--------------------
1楼已经解释的蛮清楚了  就是lambda表达式命名而已