以下字典表示目标城市ID的键/值对以及与该城市相关联的过滤器数量:
Dictionary<int, int> totalCityFilters
这个词典按过滤器的数量降序排序,这就是我需要它的方式。然后我有一份未分类的航班列表:
List<Flight> unsortedFlights
每个Flight
对象都有一堆属性,其中与我的问题最相关的是DestinationID
和FinalPrice
。我需要根据以下两个前提创建一个新的航班列表:
totalCityFilters
的顺序对列表进行排序,该字典上的键与属性DestinationID
匹配。航班列表可能包含多个具有相同DestinationID
的航班(这不是主键)。FinalPrice
属性对列表进行排序(升序)。 然而,第二种不能破坏第一种。我的意思是,如果B.DestinationID
,更便宜的航班(A)不能在更昂贵的航班(B)之上。首先显示的是A.DestinationID
上的totalCityFilters
。
答案 0 :(得分:8)
如果我理解正确的话:
var result = unsortedFlights
.OrderByDescending(f => totalCityFilters[f.DestinationID])
.ThenBy( f => f.FinalPrice)
.ToList();
如果totalCityFilters
的值是您要先订购的号码。