gpt4 book ai didi

c# - 为什么这个 Linq Where 子句不过滤结果

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:04 25 4
gpt4 key购买 nike

我是 Linq 和 MVC 的新手,经过大量的搜索和学习才达到这一点。

我有以下成功接收参数“code”的方法。

    public ActionResult GetIssueList(string code)
{
//dynamic fill of project code dropdown on selection of customer code drop down
ProjectManager pm = new ProjectManager();

var projectcodes = pm.SelectAllProjects();
var projects = new List<Project>();

foreach (var proj in projectcodes)
{
projects.Add(proj as Project);
}
return Json(projects.Where(x => x.CustomerCode == code).ToList());
}

正在从数据库中检索数据,但是where子句没有过滤掉等于参数的数据。

最佳答案

通过执行调试,确保项目肯定没有CustomerCodecode .不过,我对你的问题是“项目代码中的项目是 Project 对象吗?如果不是,你不能将它们 as castProject ,而是必须使用该代码 new Projects

此外,您在上面编写的所有内容都可以很容易地重写为一行代码。 (你可能必须在 new Project(projectCode) 之前做一个 .ToList<Project>(),但我不知道你的类型所以我不会假设)

public ActionResult GetIssueList(string code)
{
return Json(new ProjectManager()
.SelectAllProjects()
.Select(proj => proj as Project)
.Where(proj => proj.CustomerCode == code)
.ToList();
}

编辑:在上述方法的返回语句中放置一个断点,并在比较之前检查列表中的项目是否具有预期的 CustomerCode。

关于c# - 为什么这个 Linq Where 子句不过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com