如何使用 LINQ 检查空值
我有这个代码。如何使用 SingleOrDefault 方法检查空值?
public static List<ETY.Rol> GetRolesByApplicationAndCompany(this UsuarioContext usuario, int company, int app)
{
List<ETY.Company> lCompanies= usuario.Companies;
var roles = lCompanies.
SingleOrDefault(e => (e.Id == company)).Applications.
SingleOrDefault(a => a.Id == app).Roles;
return roles;
}
I have this code. How can I check for null values with the SingleOrDefault method?
public static List<ETY.Rol> GetRolesByApplicationAndCompany(this UsuarioContext usuario, int company, int app)
{
List<ETY.Company> lCompanies= usuario.Companies;
var roles = lCompanies.
SingleOrDefault(e => (e.Id == company)).Applications.
SingleOrDefault(a => a.Id == app).Roles;
return roles;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以尝试查看 Maybe/IfNotNull 扩展方法(此处和此处)。
或者使用类似这样的 Linq 语法(未经测试):
(Greg Beech 的答案 是如果单身条件得到保证更好)
You could try looking at a Maybe/IfNotNull extension method (here and here).
Or use Linq syntax something like this (untested):
(Greg Beech's answer is better if the Single condition is guaranteed)
您的意思是如果任何
SingleOrDefault
返回 null 则返回 null 或空列表?在这种情况下:Do you mean returning null or an empty list if any of the
SingleOrDefault
returns null? In that case:您可以编写一个链式查询,如下所示,而不是使用
SingleOrDefault
。您失去了确保只有一个应用程序或公司的语义,但如果您知道情况总是如此,那么这应该不是问题。Rather than using
SingleOrDefault
you could write a chained query as follows. You lose the semantics of ensuring that there's only a single application or company, but if you know that to always be the case then it shouldn't be a problem.