特定のプロパティでグループ化されたオブジェクトのリストがあります。このリストを他のプロパティに基づいて並べ替える必要がありますが、常にグループ化を保持する必要があります。たとえば、リストが次のようなものである場合:
{ id=1, partNumber = 100 }
{ id=2, partNumber = 500 }
{ id=2, partNumber = 300 }
{ id=2, partNumber = 600 }
{ id=3, partNumber = 550 }
{ id=3, partNumber = 990 }
{ id=4, partNumber = 200 }
{ id=5, partNumber = 300 }
部品番号の昇順で並べ替えた後の結果は次のようになります。
{ id=1, partNumber = 100 }
{ id=4, partNumber = 200 }
{ id=5, partNumber = 300 }
{ id=2, partNumber = 400 }
{ id=2, partNumber = 500 }
{ id=2, partNumber = 600 }
{ id=3, partNumber = 550 }
{ id=3, partNumber = 990 }
各グループの最小PartNumber(またはソートが降順の場合は最大)でソートしますが、IDでグループ化したままにする必要があります。.OrderBy()と.GroupBy()のさまざまな組み合わせを試しましたが、必要なものが得られないようです。