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的关系。