如何将linq查询转换为lambda表达式

时间:2014-12-24 11:59:28

标签: asp.net-mvc linq lambda

我将linq转换为MVC lambda表达式存在问题

我有一个模型列表

List<ViewModel> model  = new List<ViewModel>();

这是我的Linq查询:

var myQuery = Model.GroupBy(u => u.MyId)
                   .Select(grp => new
                   {
                       MyId= grp.Key,       
                       Liste = grp.ToList()
                   })
                   .ToList();

我想将此查询转换为lambda表达式。因为将ViewBag或TempData传递给没有模型列表的视图并不容易。

 model = BusinessLogic.GetAll().GroupBy(k => k.MyId).Select(k => new { MyId=k.Key, Liste=k.ToList()}).ToList();

model = BusinessLogic.GetAll()就像

  • MyId = 3,DeptId = 5,UserId = 32;
  • MyId = 4,DeptId = 5,UserId = 15;
  • MyId = 5,DeptId = 5,UserId = 18;
  • MyId = 6,DeptId = 5,UserId = 91;

我得到“无法分配给类型变量”(匿名)错误。

1 个答案:

答案 0 :(得分:1)

您正在创建匿名类型列表,而不是ViewModel列表:

 model = BusinessLogic.GetAll()
    .GroupBy(k => k.MyId)
    .Select(k => new ViewModel { MyId=k.Key, Liste=k.ToList()})
    .ToList();