为什么在下面的linq语句中有两个不同的变量(r和x)?为什么在这个linq语句中有两个不同的变量?
var letters = new Dictionary<int, string>();
letters.Add(1, "a");
letters.Add(2, "b");
letters.Add(3, "c");
letters.Add(4, "d");
letters.Add(5, "b");
....
Dictionary<string,List<int>> mydict =
letters.GroupBy(r=> r.Value)
.ToDictionary(x=> x.Key, x=> x.Select(r=> r.Key).ToList());
,为什么 “的GroupBy” 和 “选择” 条款使用相同的变量([R)?
谢谢阿隆。我知道了。 :) – burhan
Aron,所以我们不能用'x => x'替换最后一个'r => r'。导致xs会重叠。对? – burhan
是的。从技术上讲,它的范围内已经存在一个名为'x'的变量/参数。所以你会定义另一个同名的变量/参数。在*有些情况下,它是合法的,但它从来不是一个好主意。 – Aron