3

次のディクショナリは、宛先都市 ID のキーと値のペアと、その都市に関連付けられているフィルターの数を表しています。

Dictionary<int, int> totalCityFilters

このディクショナリは、フィルタ数の降順でソートされており、これが必要な方法です。次に、ソートされていないフライトのリストがあります。

List<Flight> unsortedFlights

Flightオブジェクトには、私の問題に最も関連するプロパティがたくさんありDestinationIDますFinalPrice。次の 2 つの前提に基づいて並べ替えられたフライトの新しいリストを作成する必要があります。

  1. リストは最初に の順序に基づいてソートする必要があります。totalCityFiltersその辞書のキーは プロパティ と一致しますDestinationID。フライト リストには、同じフライトが複数含まれる場合がありますDestinationID(これは主キーではありません)。
  2. 次に、リストをFinalPriceプロパティで (昇順で) 並べ替える必要があります。

ただし、2 番目の並べ替えが最初の並べ替えを破棄してはなりません。つまり、より安いフライト (A) がより高価なフライト (B) の上にB.DestinationID表示されてはなりません。A.DestinationIDtotalCityFilters

4

1 に答える 1

8

私があなたを正しく理解していれば:

var result = unsortedFlights
             .OrderByDescending(f => totalCityFilters[f.DestinationID])
             .ThenBy( f => f.FinalPrice)
             .ToList();

の値がtotalCityFilters最初に並べたい番号の場合。

于 2012-05-27T00:26:25.193 に答える