[英]Sort a list based on another list followed by a property on itself with LINQ
以下字典表示目标城市ID的键/值对以及与该城市关联的过滤器数量:
Dictionary<int, int> totalCityFilters
这个词典按过滤器的数量降序排序,这就是我需要它的方式。 然后我有一个未分类的航班列表:
List<Flight> unsortedFlights
每个Flight
对象都有一堆属性,其中与我的问题最相关的是DestinationID
和FinalPrice
。 我需要根据以下2个前提创建一个新的航班列表:
totalCityFilters
的顺序对列表进行排序,该字典上的键与属性DestinationID
匹配。 航班列表可能有多个具有相同DestinationID
航班(这不是主键)。 FinalPrice
属性进行排序(升序)。 但是,第二种不能破坏第一种。 我的意思是,如果B.DestinationID
首先出现在A.DestinationID
上的totalCityFilters
上, totalCityFilters
便宜的航班(A)不得在更昂贵的航班(B) totalCityFilters
。
如果我理解你:
var result = unsortedFlights
.OrderByDescending(f => totalCityFilters[f.DestinationID])
.ThenBy( f => f.FinalPrice)
.ToList();
如果totalCityFilters
的值是您totalCityFilters
的数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.