列表返回最后一项只有mvc 4

时间:2016-07-07 23:34:02

标签: asp.net-mvc linq asp.net-mvc-4

下面是我的行动方法。它只返回列表的最后一项。但是我想要AList中的项目列表。

public ActionResult Ataxi(){
        List<sub_employee> AList = new List<sub_employee>();
        var alist = IM.getAvailableList().ToList();
        foreach(var item in alist)
        {
             AList = db.sub_employee.Where(s => s.SE_ID == item).ToList();
        }
        return View(AList);

    }

如何在Alist中获取所有元素。有人可以帮助我解决这个问题。谢谢

1 个答案:

答案 0 :(得分:0)

我想你想要这样的东西:

public ActionResult Ataxi(){
    var list1 = IM.getAvailableList().ToList();
    var list2 = db.sub_employee
        .Where(x => list1.Contains(x.Id))
        .ToList();
    return View(list2);
}

在您的示例中,您将继续覆盖列表的值。您还会针对Where检查原始列表中每个项目的db.sub_employee,这很难阅读且效率不高。您实际上只需要使用Where一次来过滤其键不在列表中的值。请注意,在Contains中使用Where效率非常低,但编写起来很简单,并且不需要创建新的LINQ运算符。

另外,在样式注释中,我会避​​免使用大写字母(Alist)启动局部变量名称,尤其是避免仅按大小写区分的局部变量(Alist vs alist )。相反,以大写字母(sub_employee)开头命名类型和属性是标准的。