以下是从代码中提取的linq路径的赋值示例...
applicants = appRegistrations
.ToList()
.Select(c => new ApplicantList() {
PartnerType = c.Participant != null ? c.Participant.PartnerType != null ? c.Participant.PartnerType.PartnerTypeName : "" : ""
});
注意空检查 - 考虑到参与者和PartnerType可能为空,我是否可以更优雅地编写此代码?
我只是讨厌在每个属性上检查空值。
答案 0 :(得分:1)
你可以稍微缩短一点:
PartnerType = c.Participant != null && c.Participant.PartnerType != null
? c.Participant.PartnerType.PartnerTypeName
: ""
答案 1 :(得分:1)
您可以检查其中一个是null
:
List<ApplicantList> applicants = appRegistrations
.Select(ar => c.Participant == null || c.Participant.PartnerType == null
? "" : c.Participant.PartnerType.PartnerTypeName)
.Select(str => new ApplicantList { PartnerType = str })
.ToList();
答案 2 :(得分:0)
构造Participant
等对象时,确保属性永远不为空。如果null
是Participant
的有效值,请考虑一下?如果没有,那么你永远不应该允许它为空。获取构造函数参数并添加一个guard子句以检查空值。否则将它们初始化为default
值。