3

以下字典表示目标城市 ID 的键/值对以及与该城市关联的过滤器数量:

Dictionary<int, int> totalCityFilters

这本字典按过滤器数量的降序排序,这是我需要的方式。然后我有一个未排序的航班列表:

List<Flight> unsortedFlights

每个Flight对象都有一堆属性,其中与我的问题最相关的是DestinationIDFinalPrice。我需要创建一个新的航班列表,根据以下两个前提对其进行排序:

  1. 该列表应首先根据 的顺序进行排序totalCityFilters,该字典上的键与属性匹配DestinationID。航班列表可能有多个相同的航班DestinationID(这不是主键)。
  2. 然后应按FinalPrice属性对列表进行排序(升序)。

但是,第二种不能破坏第一种。我的意思是,如果比onB.DestinationID最先出现,更便宜的航班 (A) 一定不能在更昂贵的航班 (B)之上。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 回答