使用另一个复杂对象列表 C# 对复杂对象列表进行排序
Order a list of complex objects with another list of complex objects C#
我有两个这样的对象列表:
List<Result> result = [{id: 1, country: 'France'}, {id: 2,country: 'Sweden'}, {id: 5,country: 'Denmark'}]
List<OrderResult> orderResult = [{id: 5, score: 12}, {id: 1, score: 11}, {id: 2, score 10}]
我会根据数组 orderResult 的顺序对列表结果进行排序以获得最终结果:
result = [{id: 5, country 'Denmark'}, {id: 1, country: 'France'}, {id: 2, country: 'Sweden'}]
您可以将 OrderResult 列表转换为以 id 为键,索引为值的字典:
var orderDict = orderResults
.Select((value, index) => (value.Id, index))
.ToDictionary(p => p.Id, p => p.index);
假设所有结果在 orderResults 中都有相应的条目,那么对结果进行排序应该是微不足道的。:
result.OrderBy(r => orderDict[r.id]);
我有两个这样的对象列表:
List<Result> result = [{id: 1, country: 'France'}, {id: 2,country: 'Sweden'}, {id: 5,country: 'Denmark'}]
List<OrderResult> orderResult = [{id: 5, score: 12}, {id: 1, score: 11}, {id: 2, score 10}]
我会根据数组 orderResult 的顺序对列表结果进行排序以获得最终结果:
result = [{id: 5, country 'Denmark'}, {id: 1, country: 'France'}, {id: 2, country: 'Sweden'}]
您可以将 OrderResult 列表转换为以 id 为键,索引为值的字典:
var orderDict = orderResults
.Select((value, index) => (value.Id, index))
.ToDictionary(p => p.Id, p => p.index);
假设所有结果在 orderResults 中都有相应的条目,那么对结果进行排序应该是微不足道的。:
result.OrderBy(r => orderDict[r.id]);