0


我有 4 个要关联的值,由该数据库表表示:

菜单树数据库表

我正在 C# 中搜索一种数据结构,我基本上可以有一个键,每个条目有三个Level值,在这种情况下,字段是键。

这将是这些值之间的关系:

0 --> (0, "顶级", "")
1 --> (0, "子菜单", "")
2 --> (1, "asdf", " http://www.asdf. com ")
2 --> (1, "qwerty", " http://www.qwerty.com ")


请注意,键不会是唯一的


使用上面的示例数据库信息,我将创建这个嵌套asp:MenuItem

<asp:MenuItem Text = "Top-level">
    <asp:MenuItem Text = "Submenu">
        <asp:MenuItem Text = "asdf" NavigateUrl = "http://www.asdf.com" />
        <asp:MenuItem Text = "qwerty" NavigateUrl = "http://www.qwerty.com" />
    </asp:MenuItem>
</asp:MenuItem>


...使用像这样的讨厌的 C# 数据结构:

// this is crazy!
SortedDictionary<int, SortedDictionary<int, KeyValuePair<string, string>>



显然,动态填充下拉菜单涉及更多细节,例如树遍历但现在我主要关心的是从正确的结构开始

4

1 回答 1

2

我使用了一个类结构来做到这一点;字典会很困难,因为它可能有很多层次。一个类在这方面做得更好,因为它可以支持无限的嵌套级别:

public class MenuItem
{
   public string Text { get; set; }
   public string NavigateUrl { get; set; }
   .
   .

   public List<MenuItem> Children { get; set; }

}

所以每个菜单项都可以有它自己的子项,它有它的子项,并且可以支持许多级别的深度。要生成它,需要遍历根级别的记录,然后在数据源中查找它的子项,并以面向递归的方式构建集合。

于 2013-07-25T18:15:27.003 回答