如果我有:
public Dictionary<string, int> ChangeDictionary(Dictionary<string, int> myDictionary)
{
myDictionary.OrderBy(a => rnd.Next());
}
什么是“a”?我知道它是匿名函数的参数,但我不知道这个语法是什么。我无法从MSDN文档中看出来。是“a”字典myDictionary
?
a
的值传入的内容。是myDictionary吗?
答案 0 :(得分:4)
&#34; a&#34;是一个参数。你的lambda可以改写:
private int MyOrderSelector(KeyValuePair<string, int> a)
{
return rnd.Next();
}
据我所知,你只是称它为参数。它的类型取决于lambda的签名。在这种情况下,OrderBy
需要Func<KeyValuePair<string, int>, int>
。
您可以通过intellisense或使用LINQ来判断a
的类型是什么;参数是枚举的集合中的单个项目。由于Dictionary
是IEnumerable<KeyValuePair<K, V>>
,因此项目也是KeyValuePair
。
对于编辑,在此特定的情况下,重复调用lambda,字典中的每个项目轮流作为参数值。更一般地说,a
的值是调用者作为第一个参数传递的任何值。