【发布时间】:2012-06-27 18:27:43
【问题描述】:
有一个对象列表,每个对象代表数据库中的一条记录。要对记录进行排序,有一个名为 SortOrder 的属性。这是一个示例对象:
public class GroupInfo
{
public int Id { get; set; }
public string Text { get; set; }
public int SortOrder { get; set; }
public GroupInfo()
{
Id = 0;
Text = string.Empty;
SortOrder = 1;
}
}
列表对象如下所示:
var list = new List<GroupInfo>();
我需要能够更改 SortOrder 并更新列表中其他对象的 SortOrder。我想出了如何按一个向上或向下排序。我需要知道如何将其更改多个并调整其他记录上的 SortOrder。有什么想法吗?
【问题讨论】:
-
for 循环有什么问题?也许我误解了这个问题。
-
所以当您更改一个 groupInfo 的排序顺序时,它会更改其他 groupinfos 的排序顺序?
-
用linq轻松搞定,等老婆下电脑一分钟发例子!
-
你老婆得快点了。 ;-)
-
SortOrder是否需要保留在GroupInfo对象中,SortOrder是由什么决定的?就个人而言,我会认真考虑使用例如SortedList<int, GroupInfo>来解决这个问题。更新SortOrder仍然需要一些逻辑,但您至少可以消除GroupInfo对象的一些复杂性。
标签: c# list sorting object orm