使用谓词为Orderby c#Dictionary

时间:2016-11-23 12:21:23

标签: c# predicate

帮我新主题“谓词” 我有一个问题要更改此代码以使用谓词:

 var d = dict.OrderBy(delegate(KeyValuePair<string,int> pair) { return pair.Value; });

但不知道它是如何运作的......

1 个答案:

答案 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>