我在C#中有两个列表
var list1 = new List<int>() { 1,2,3,4};
var list2 = new List<Rank>()
{
new Rank {Id = 1, SortOrder = 2},
new Rank {Id = 2, SortOrder = 3},
new Rank {Id = 3, SortOrder = 1},
new Rank {Id = 4, SortOrder = 4}
};
我想根据list2中的SortOrder
对list1进行排序
结果
list1 =
3,1,2,4
在LINQ中有没有办法做到这一点?
答案 0 :(得分:1)
您可以尝试使用zip
var result = list1.Zip(list2, (l1, l2) => new { l1, l2 })
.OrderBy(pair => pair.l2.SortOrder)
.Select(pair => pair.l1)
.ToList();