[英]Checking for null on object before trying to access it
有沒有更好的書寫方式? 我不喜歡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;
我可以不用重復查詢位
將其重寫為:
editItem.FrameVent = fd.Where(x => x.hardwaretype == 39 && x.name.StartsWith("Frame Vent"))
.Select(p => p.hardwareid)
.FirstOrDefault();
您也可以使它更經典:
var result = fd.FirstOrDefault(x => x.hardwaretype == 39 && x.name.StartsWith("Frame Vent"));
editItem.FrameVent = result == null ? null : result.hardwareid;
您可以添加變量以簡化
var frameVent = fd.FirstOrDefault(x => x.hardwaretype == 39 && x.name.StartsWith("Frame Vent"));
editItem.FrameVent = frameVent==null ? null : frameVent.hardwareid;
只是一些額外的信息,而不是答案:
如果Microsoft確實按要求實施“安全導航操作員”('?。')( 按此處的要求 ),則解決方案將如下所示:
editItem.FrameVent =
fd.FirstOrDefault(x => x.hardwaretype == 39 && x.name.StartsWith("Frame Vent"))
?.hardwareid;
引入這個新的運營商是否是一個好主意,尚有待商matter。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.