私が今日OrderByで遭遇した非常に奇妙な状況:
Func<SomeClass, int> orderByNumber =
currentClass =>
currentClass.SomeNumber;
それで:
someCollection.OrderBy(orderByNumber);
これは問題ありませんが、orderBy以外の場所で使用できる可能性があるため、代わりにメソッドを作成しました。
private int ReturnNumber(SomeClass currentClass)
{
return currentClass.SomeNumber;
}
これをOrderByに接続しようとすると、次のようになります。
someCollection.OrderBy(ReturnNumber);
Funcを使用した場合のようにタイプを推測することはできません。メソッド自体はFuncのように「強く型付けされている」ので、私には同じである必要があるようです。
補足:私はこれができることを理解しています:
Func<SomeClass, int> orderByNumber = ReturnNumber;