【发布时间】:2016-03-05 19:22:39
【问题描述】:
我有一种情况,我需要在对象初始化器中分配一些对象的属性。其中一些对象可以为空,我需要访问它们的属性,问题是它们太多了,使用 if/else 的东西不好。
示例
visits = visitJoins.AsEnumerable().Select(joined => new VisitPDV()
{
VisiteId = joined.Visite.VisiteId.ToString(),
NomPointDeVente = joined.VisitePdvProduit.PointDeVente.NomPointDeVente,
});
joined.VisitePdvProduit 可以为空,问题是这样的赋值有几十个(我只取了一个来缩短代码)
C# 6Null-Conditional operator是这种情况的完美解决方案,问题是我在这个项目中使用C# 5,有没有办法模仿?
【问题讨论】:
-
创建扩展方法
-
visitJoins.AsEnumerable().Where(vj => vj.VisitePdvProduit != null).Select(joined => new VisitPDV()怎么样 -
@ClayVerValen 正如我所说的我有多个这样的任务,我只是缩短了它以避免这里出现长代码,做你的建议不会有帮助。