我有一个问题,似乎无法通过搜索找到答案(要么就是我正在搜索完全错误的东西!)。我的数据库中填充了一个sortedlist项,其中有一个名为“Top 10”的项列表(SortedList,其中int是位置,字符串是item)。我希望能够通过单击按钮在列表顺序中上下移动项目,然后将新顺序保存回数据库。我对数据库部分感到满意​​,这只是我真正在努力的重新排序-排序列表是否是正确的集合?

非常感谢您提供的任何建议。

最佳答案

SortedList用于在您添加或删除项目时保持SortedList中的顺序。

您应该创建对象的自定义列表,然后对该对象的属性进行排序。

因此,如果您在数据库中输入的内容是这样的,则可以将其放置在对象中,将其添加到列表中,然后使用Lambda对其进行排序(只要您喜欢该条件)

public class LeaguePosition
{
    public int Position { get; set; }
    public string Team { get; set; }
}


List<LeaguePosition> League = new List<LeaguePosition>();
League.Add(new LeaguePosition() { Position = 2, Team = "Wolves" });
League.Add(new LeaguePosition() { Position = 3, Team = "Spurs" });
League.Add(new LeaguePosition() { Position = 1, Team = "Villa" });

League.Sort((teamA, teamB) => teamA.Position.CompareTo(teamB.Position));

然后,您还可以使用RemoveAt()和Insert()将项目移动到列表中的自定义位置。
LeaguePosition teamToMove = League[1];
League.RemoveAt(1);
League.Insert(2, teamToMove);

10-08 06:18