OrderByメソッドを使った具体的な例として、Dictionaryのソートを行う例について見てみます。
次の例のメソッドKeySelectorはキーの選択を行うメソッドです。 Dictionaryの場合は個々の要素がKeyValuePairとして格納されているため、KeyValuePairの何をキーとするかを定める必要があります。 Dictionaryをキーでソートするためには、KeyValuePair.Keyプロパティを並べ替えの際のキーとするようにします。 KeySelectorメソッドでは、このようなキー選択の動作を定義しています。 OrderByメソッドの引数にKeySelectorメソッドを渡すことにより、その定義にしたがってソートが行われます。
上記の例ではDictionaryをキーにしたがってソートするためにKeyValuePair.Keyをキーとしていました。 一方、Dictionaryを値にしたがってソートしたい場合は、次のようにKeyValuePair.ValueをキーとするようにKeySelectorを変えるだけで出来ます(キーの型に合わせてメソッドの戻り値を変えている点に注意してください)。