我有一个表示用户的类数组和另一个表示固定项(当前仅为用户ID)的类array.以下是课程:
public class User
{
public int UserId { get; set; }
public bool Pinned { get; set; }
public User(int userId, bool pinned)
{
UserId = userId;
Pinned = pinned;
}
}
public class PinnedItem
{
public int UserId { get; set; }
public PinnedItem(int userId)
{
UserId = userId;
}
}
固定用户的所有用户ID都以特定的顺序(固定项目的顺序)保存,我想对用户数组进行排序,以便固定用户位于顶部,而这些固定用户遵循固定项目数组的顺序.例如,如果我有一组用户,如:
var users = new []{ new User(1, true), new User(2, false), new User(3, true) }
以及如下所示的固定项目数组:
var pinnedItems = new [] { new PinnedItem(3), new PinnedItem(1) }
然后,我希望生成的数组如下所示:
[ {3, true}, {1, true}, {2, false} ]
如果固定项目的数组没有任何顺序,我也需要它工作.因此,如果我有这个用户数组:
var users = new []{ new User(1, false), new User(2, true), new User(3, true), new User(4, true) }
以及此固定项目数组:
var pinnedItems = new [] { new PinnedItem(3), new PinnedItem(2), new PinnedItem(4) }
在这种情况下,我希望生成的数组如下所示:
[ {3, true}, {2, true}, {4, true}, {1, false} ]
我们将非常感谢您的任何帮助.此外,如果问题中有任何不清楚的地方,我很抱歉,如果需要,我将对其进行相应的编辑.