我有一个包含字符串的order属性的列表。
数据如下所示:
1
2
2.1
2.1.1
2.1.2
2.2
2.2.1
2.2.2
3
3.1
3.2
3.3
4
阶级结构是这样的
public class CMNavBarDefaultDto
{
public int ID { get; set; }
public string Name { get; set; }
public string? Description { get; set; }
public string? Comments { get; set; }
public string Order { get; set; }
public bool ToShowGray { get; set; }
public bool IsNew { get; set; }
}
如果用户从列表中删除任何顺序,如用户删除3.1,则3.2和3.3重新排列,3.2变成3.1,3.3变成3.1,如果用户删除任何父,如1,则所有的分层结构应该以新的形式保持,如2变成1,并且它的孩子和子孩子应该从1开始。
有人能告诉我在这种情况下什么方法是有帮助的吗?
2条答案
按热度按时间kh212irz1#
在我看来,最好的方法是使用
uint
列表来指定所需的级别。然后,您可以将html表与Order对象并行,以便通过让删除操作实际修改Order来根据需要更新表,然后Order更新html表。问题是,如果用户删除了中间层,该怎么办?例如,如果用户按以下顺序删除1.1,1.1.1和1.1.2会发生什么?
难道就变成下面这样了?
了解了这些规则,您可以创建一个转换函数来创建并行Order,然后根据需要对其进行操作。(即,如果您的级别为2,则假定之前的级别为2或1)。在任何时候,您都可以向上跳转级别(也就是说,你可能在第4级,然后有下一个第1级)。如果你不遵守这些规则,ToString函数将抛出Exception。
sz81bmfz2#
以下内容将创建树。必须添加代码才能在树中添加和移除项。添加或移除时,必须对项重新编号