基本的に、速度または価格のいずれかをプライマリとして取得し、このプライマリと同じ値を持つ車を取得し、それらの値を昇順/降順で並べ替える必要があります。必要に応じて、プライマリも昇順/降順で取得されます。
例:
c1(20,1000) c2(30,5000) c3(20, 500) c4(10, 3000) c5(35, 1000)
上記のリストの尺度として車 (速度、価格) を想定し、主な尺度は速度です。
1 最低速度で車を手に入れる
2 次に、同じ速度値を持つすべての車を取得します
3 これらの値を車の価格が高い順に並べ替えます
4 次の最小速度値を持つ次の車を取得し、上記のプロセスを繰り返します
c4(10, 3000)
c3(20, 500)
c1(20, 1000)
c2(30, 5000)
c5(35, 1000)
使用している言語を投稿すると、一部の言語構造によって実装が容易になるため、役に立ちます。たとえば、LINQ を使用すると、この状況での作業が非常に簡単になります。
cars.OrderBy(x => x.Speed).ThenBy(p => p.Price);
編集:
これで、この車のアイテムをグリッドに配置することによるリストが得られました。これらの値を持つ事前に決められた車の数がこれだけ多くなることがわかっていない限り、固定のグリッド サイズを使用することは期待できません。今。
1 つのオプションは、不均一なグリッドを使用することです。必要に応じて、各行に特定の速度の車のアイテムを配置しますが、これは、同じ速度値を持つ車がかなりの数存在することがわかっている場合にのみ適用できます。
したがって、各行には同じ速度の車がグリッドに表示されます。
ありがとう