这个用法的用意是什么呢?
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);
有什么区别吗?
------解决方案--------------------一样的,只不过起了两个不同的名字
如下,可能会好理解一点
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表达式命名而已