以下字典表示目标城市 ID 的键/值对以及与该城市关联的过滤器数量:
Dictionary<int, int> totalCityFilters
这本词典是按过滤器数量降序排列的,这是我需要的方式。然后我有一个未排序的航类列表:
List<Flight> unsortedFlights
每个 Flight
对象都有一堆属性,其中与我的问题最相关的是 DestinationID
和 FinalPrice
。我需要创建一个新的航类列表,并根据以下 2 个前提对它们进行排序:
- 首先应根据
totalCityFilters
的顺序对列表进行排序,该字典上的键与属性DestinationID
相匹配。航类列表可能有多个具有相同DestinationID
的航类(这不是主键)。 - 然后应按
FinalPrice
属性对列表进行排序(升序)。
但是,第二种不能破坏第一种。我的意思是,如果 B,便宜的航类 (A) 一定不能在更贵的航类 (B) 之上。在
比 totalCityFilters
上,DestinationIDA.DestinationID
先出现。
最佳答案
如果我没理解错的话:
var result = unsortedFlights
.OrderByDescending(f => totalCityFilters[f.DestinationID])
.ThenBy( f => f.FinalPrice)
.ToList();
如果totalCityFilters
的值是你想先排序的数字。
关于c# - 根据另一个列表对列表进行排序,然后使用 LINQ 对其自身进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770727/