我想知道是否有更好的方法来执行以下操作,
IList<RoleViewModel> ReturnViewModel = new List<RoleViewModel>();
IList<Role> AllRoles = PermServ.GetAllRoles();
foreach (var CurRole in AllRoles)
{
ReturnViewModel.Add(new RoleViewModel(CurRole));
}
它非常简单的代码只需获取数据对象并将其转换为ViewModel。我想知道是否有办法更好地做到这一点? - 也许和Linq一起?
答案 0 :(得分:7)
从头顶(不是开发机器)。
IList<RoleViewModel> returnViewModel = PermServ.GetAllRoles()
.Select(x => new RoleViewModel(x))
.ToList();
答案 1 :(得分:6)
var returnViewModel = (from n in PermServ.GetAllRoles()
select new RoleViewModel(n)).ToList();
答案 2 :(得分:0)
另一个选择是使用AutoMapper处理您的转化。
Mapper.CreateMap<Role, RoleModel>();
IList<RoleViewModel> returnViewModel =
Mapper.Map<IList<Role>, IList<RoleViewModel>>(PermServ.GetAllRoles());