在尝试访问对象之前检查对象上的null

rak*_*los 0 c# linq

有没有更好的写作方式?我不喜欢null检查的方式

    editItem.FrameVent =fd.FirstOrDefault(x => x.hardwaretype == 39 
&& x.name.StartsWith("Frame Vent"))==null?null: fd.FirstOrDefault(x => x.hardwaretype == 39 
&& x.name.StartsWith("Frame Vent")).hardwareid;
Run Code Online (Sandbox Code Playgroud)

我可以不重复查询位

Ulu*_*rov 6

将其重写为:

editItem.FrameVent = fd.Where(x => x.hardwaretype == 39 && x.name.StartsWith("Frame Vent"))
                       .Select(p => p.hardwareid)
                       .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

  • @SriramSakthivel局部变量如何帮助"O"? (3认同)
  • @SriramSakthivel我相信你低估了"IEnumerable"的力量. (3认同)