OrderBy と ThenBy を使用した linq クエリ (データベース関連ではない) があります。
var sortedList = unsortedList
.OrderBy(foo => foo.Bar) //this property access is relatively fast
.ThenBy(foo => foo.GetCurrentValue()) //this method execution is slow
取得foo.Bar
は高速ですが、実行foo.GetCurrentValue()
は非常に遅いです。戻り値は、一部のメンバーが等しい Bar 値を持っている場合にのみ問題になります。これはめったに発生しませんが、発生した場合に備えて考慮することが重要です。バーの値が等しい場合にタイブレークが必要な場合にのみ、ThenBy 句を実行することを選択することは可能ですか? (つまり、foo.Bar 値が一意の場合は実行されません)。
また、実際には Bar も少し遅いため、同じオブジェクトに対して 2 回呼び出さないことをお勧めします。