max*_*986 1 c# lambda if-statement
我喜欢简短的代码,所以最近我试图将if语句和Linq查询与lambda表达式放在一行中.
有可能做这样的事情:
db.Users.First(x => x.UserId == providedId)??x.SomeUsefullField
Run Code Online (Sandbox Code Playgroud)
如果找不到用户,则应返回null;如果用户确实存在,则返回某些字段的值.
是否可以在没有获得用户的情况下获得,而不是像这样得到字段值:
var user = db.Users.First(x => x.UserId == providedId);
var fieldValue = user.SomeUsefullField;
Run Code Online (Sandbox Code Playgroud)
感谢您提供可能的解决方案和知识共享.
是的,您可以使用null传播运算符:
var userField = db.Users.FirstOrDefault(x => x.UserId == providedId)?.SomeUsefullField;
Run Code Online (Sandbox Code Playgroud)
这里重要的是使用FirstOrDefault,null当找不到匹配时将返回.然后使用?.仅SomeUsefullField在表达式未返回时获取属性null.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |