【发布时间】:2020-06-10 12:54:59
【问题描述】:
我在 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进行排序
结果
列表1 =
3,1,2,4
有没有办法在 LINQ 中做到这一点?
【问题讨论】:
-
LINQ orderBy 适用于单个列表,为什么不合并它们然后应用 orderBy 子句?
-
这能回答你的问题吗? List sort based on another list
-
list2.OrderBy(x => x.SortOrder).Select(x => list1.FirstOrDefault(y => x.Id == y))