填充对象列表(使用Linq?)

时间:2009-12-03 15:18:39

标签: c# asp.net linq

我想知道是否有更好的方法来执行以下操作,

    IList<RoleViewModel> ReturnViewModel = new List<RoleViewModel>();

    IList<Role> AllRoles = PermServ.GetAllRoles();

    foreach (var CurRole in AllRoles)
    {
        ReturnViewModel.Add(new RoleViewModel(CurRole));
    }

它非常简单的代码只需获取数据对象并将其转换为ViewModel。我想知道是否有办法更好地做到这一点? - 也许和Linq一起?

3 个答案:

答案 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());