c# - 即使使用 System.Linq,C# FirstOrDefault() 也无法正常工作
问题描述
这里是 C# 初学者:我只想查看有与当前用户年龄相同的员工的设施。
由于某种原因FirstOrDefault()
,它下面有一条红线,上面写着:
“Facility”不包含“FirstOrDefault”的定义,并且找不到接受“Facility”类型的第一个参数的可访问扩展方法“FirstOrDefault”(您是否缺少 using 指令或程序集引用?
这是行:
facilities = facilities.Where(facility => facility.Employee.FirstOrDefault().Age == (int)HttpContext.User.GetAge());
在文件的顶部,我有“使用 System.Linq”,我知道它正在工作,因为没有它,Where 会出现错误。所以,我想知道还有什么可能导致这个问题?
解决方案
尝试这个。首先,您需要根据谓词过滤值序列,然后返回序列的第一个元素。在这里阅读更多
facilities = facilities.Where(facility => facility.Employee.Age == (int)HttpContext.User.GetAge()).FirstOrDefault();
这更具可读性,
var userAge = (int)HttpContext.User.GetAge();
facilities = facilities.Where(facility => facility.Employee.Age == userAge).FirstOrDefault();
同意@Metro,您可以简单地使用,
var userAge = (int)HttpContext.User.GetAge();
var facility = facilities.FirstOrDefault(facility => facility.Employee.Age == userAge);
推荐阅读
- ruby-on-rails - Rails 5 升级后性能大幅下降
- typescript - 将 Firebase 自动生成的 noreply 电子邮件与 Cloud Functions 结合使用
- visual-studio-2017 - Visual Studio 2017 Nuget 安装包构建项目而不是安装/卸载包
- mysql - 避免多重连接以优化 MYSQL 中的查询
- python - 使用直方图进行特征分析——LinAlgError:奇异矩阵
- postgresql - pgadmin4 无法连接到我的 postgres 数据库
- ios - SwiftUI - 检查图像是否存在
- c# - 电子邮件中的 xml 格式
- sql-server - 涉及同一表中的多个列的条件 where 语句
- reactjs - 缺少接口属性错误,但实际上并没有丢失