我有以下代码,其具有一些重复这段代码如何清除以消除重复?
private List<SelectListItem> GetDeskList(int deskId)
{
List<Desk> apps = Model.GetDesks();
List<SelectListItem> dropdown = apps.ConvertAll(c => new SelectListItem
{
Selected = c.Id == deskId,
Text = c.Name,
Value = c.Id.ToString()
}).ToList();
dropdown.Insert(0, new SelectListItem());
return dropdown;
}
private List<SelectListItem> GetRegionList(int regionId)
{
List<Region> apps = Model.GetRegions();
List<SelectListItem> dropdown = apps.ConvertAll(c => new SelectListItem
{
Selected = c.Id == regionId,
Text = c.Name,
Value = c.Id.ToString()
}).ToList();
dropdown.Insert(0, new SelectListItem());
return dropdown;
}
和一些更喜欢它与一个类似的模式。什么是重构这避免重复
在你的例子中,我不能编译你的解决方案,因为我得到错误,它无法解决c.Id或c.Name。任何想法为什么? – leora 2010-06-30 23:53:18
@ooo:我刚刚做了一个修改。为了这个工作,你的模型需要实现一个通用的接口(或从一个公共的基类继承)与这些属性。 – LukeH 2010-06-30 23:58:52