如何在C#中从另一个不同的列表设置列表的属性

时间:2015-09-14 12:09:11

标签: c# linq

我有两个名为RoleModel和RoleViewModel的列表。

public class RoleVM
{
    public string text { get; set; }
    public string icon { get; set; }
    public string node { get; set; }
}

public partial class Role
{
    public int Id { get; set; }
    public string RoleName { get; set; }
    public Nullable<int> ChildID { get; set; }
}

如何将rolename的属性(从rolemodel)分配给文本(来自rolevm)

public ActionResult getJsonTree()
{
    List<Role> _lstRole = _db.Roles.ToList();
    List<RoleVM> _lstViewRole = new List<RoleVM>();
    foreach(var _role in _lstRole)
    {
        if (_role.ChildID == null)
        {
            _lstViewRole.Add(_role);//Adds the role model to rolevm class
        }                
    }            
    return Json(_lstViewRole, JsonRequestBehavior.AllowGet);
}

1 个答案:

答案 0 :(得分:3)

怎么样

List<RoleVM> _lstViewRole = _db.Roles.Where(x => x.Id == null).Select(x => new RoleVM() { text = x.RoleName }).ToList();
  • 选择Id == null
  • 的所有项目
  • 为每个Role对象创建一个新的RoleVM对象,Role.RoleName转到RoleVM.text