c# - 里面的lambda表达式?? (如果是快捷方式)运算符

标签 c# if-statement lambda

我喜欢短代码,所以最近我在尝试将 if 语句和 Linq 查询与 lambda 表达式放在一行中。

是否可以这样做:

db.Users.First(x => x.UserId == providedId)??x.SomeUsefullField

如果未找到用户,则返回 null,如果用户存在,则返回某个字段的值。

是否可以不首先获取用户而不是像这样获取字段值:

var user = db.Users.First(x => x.UserId == providedId);
var fieldValue = user.SomeUsefullField;

感谢您提供可能的解决方案和知识共享。

最佳答案

是的,您可以使用空传播运算符:

var userField = db.Users.FirstOrDefault(x => x.UserId == providedId)?.SomeUsefullField;

这里重要的是使用FirstOrDefault,当找不到匹配项时,它将返回null。然后使用 ?. 仅在表达式不返回 null 时获取 SomeUsefullField 属性。

关于c# - 里面的lambda表达式?? (如果是快捷方式)运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516964/

相关文章:

python - Django - 如果单击按钮,如何执行 if 语句

c++ - bool 函数作为输入参数

c# - 'fixed' 到底在做什么?

c# - WPF PasswordBox 中密码的安全优势不可绑定(bind)?

c# - 在不同的 Controller 操作方法之间传递数据

c# - 如何计算立方体中的点是否在WPF 3D中可见

c - C 中的嵌套 if 语句 - 为什么它不评估最后一个 else if?

javascript - 使 HTML 表单提交到不同的地方

lambda - 无服务器:指定的存储桶不存在

linq - 匿名方法/Lambda 的(编码标准)