帮我新主题“谓词” 我有一个问题要更改此代码以使用谓词:
var d = dict.OrderBy(delegate(KeyValuePair<string,int> pair) { return pair.Value; });
但不知道它是如何运作的......
答案 0 :(得分:0)
问题出在哪里?
delegate(KeyValuePair<string, int> pair) { return pair.Value; }
与Func<KeyValuePair<string, int>, int>
相同。
因此,您可以通过以下方式轻松替换代码:
var d = dict.OrderBy((KeyValuePair<string, int> pair) => pair.Value);
或者更容易:
var d = dict.OrderBy(pair => pair.Value);
由于编译器可以自动推断委托中实例的类型。
顺便说一句:谓词基本上是一种需要您的类型实例的方法(在您的情况下为KeyValuePair<string, int>
并返回bool
,因此为Func<T, bool>
。