LINQ 方法不返回任何结果的问题

problems with LINQ method not returning any results

目前我对列表的 LINQ 查询未返回搜索结果。我正在尝试向该方法传递一个字符串,它会在其中搜索每个对象 FirstName, LastName, and Username 字段。 这是我的方法:

        public IEnumerable<Volunteer> Search(string key)
        {
            IEnumerable<Volunteer> searchResults = _volunteerList.Where(v => v.FirstName == key 
                                                                        || v.LastName == key 
                                                                        || v.Username == key);

            return searchResults;
        }

我已验证字符串 key 正在传递到方法中,并且包含正确的值“Bob”。

这是我的 _volunteerList:

中的对象列表
                new Volunteer {id = 1, FirstName = "Bob", LastName = "Evans", Username = "BEvans", Password= "1991", StreetAddress = "1995 StreetName Ave", State = "FL", City = "Jacksonville", ZipCode = 32225, ApprovalStatus = "Approved"},
                new Volunteer {id = 2, FirstName = "Jim", LastName = "Evans", Username = "JEvans", Password= "1992", StreetAddress = "1995 StreetName Ave", State = "FL", City = "Jacksonville", ZipCode = 32225, ApprovalStatus = "Approved"}

对我来说,从我查找的所有内容来看,LINQ 语句的语法看起来是正确的,并且没有返回任何错误(至少在 VS19 中)。有什么我想念的吗?

提前致谢。

仅供参考:相关methods/code:

家庭控制器 - 搜索()

        [HttpGet]
        public ActionResult Search(string key)
        {

            IEnumerable<Volunteer> results = _volunteerRepository.Search(key);

            ViewData.Model = results;
            return View("SearchResults");
        }

管理志愿者(查看)- 表格

<form method="get" asp-action="Search" >
    <table>
        <tr>
            <td><input type="text" placeholder="Search" name="Key" value ="Bob" class="form-control"/> </td>
            <td><input type="submit" value="Search" class="btn btn-primary"></td>
        </tr>
    </table>
</form>

我最近遇到了同样的问题,我所做的就是把它放在我的 IEnumerable 的末尾。一个 ToList();

IEnumerable<Volunteer> searchResults = _volunteerList.Where(v => v.FirstName == key 
                                                                        || v.LastName == key 
                                                                        || v.Username == key).ToList();

坦白说...我不知道我做了什么,但现在我的 SearchResults 视图上显示了正确的输出。

一切正确。我不知道为什么,但在上传结果列表之前经过几个小时的工作后,结果列表显示正确。

感谢您尝试提供的帮助。

您已将 _volunteerList 声明为 List<Volunteer>IEnumerable<Volunteer> ?似乎存在一些类型转换问题。尝试在使用 IEnumerable<Volunteer> 的地方保留 List<Volunteer>。看看是否有效。