C# 实现自己索引器

172 阅读1分钟

C# 实现自己索引器

应用场景
在系统初始化,我们需要加载系统的所有菜单显示到界面。但又需要对单独的某一个菜单进行操作。如点击某个菜单,获取菜单的链接,跳转到该菜单对应的界面。

public class MenuCollection
{
    private list<Menu> _listMenu;
    
    public MenuCollection()
    {
        //初始化_listMenu
        _listMenu = new list<Menu>();
    }
    
    public Menu this[sting finterID]
    {
        get
        {
            return _listMenu.Find(menu => menu.FInterID == finterID)
        }
    }
    
    public void Add(Menu menu)
    {
        if(!_listMenu.Contains(menu))
        {
            _listMenu.Add(menu);
            menu.MenuSet = this;
        }
    }
}

public Class Menu
{
    public string FInterID{ get; set; }
    
    public string Link{ get; set; }
    
    public MenuCollection MenuSet{ get; internal set;}
}

这样既可以从MenuCollection 中得到某一个菜单类,也可以从某一个菜单类得到整个菜单的集合,从而相互依存,类似于DataTable 和 DataRow的关系。