是否可以在匿名类型中有一个条件字段

我有一些看起来像这样的代码,并从现有的集合创建一个列表

var items = items.ConvertAll(r => new { description = FormatDescription(r), start = r.Milestone.HasValue ? r.Milestone.Value.ToString("yyyy-MM-ddTHH:mm:ssZ") : DateTime.Today.ToString("yyyy-MM-ddTHH:mm:ssZ"), classname = "significance" + r.SignificanceLevel, 

正如你所看到的,现在如果我没有开始日期(r.Milestone)那么我就把它放在今天的日期。 我真的想做的如果说:

  1. 如果我有一个r.Milestone.Hasvalue显示该日期,如果我没有值,则根本不具有匿名类型的START DATE字段。

是否可以使用此条件逻辑,您可以在此类代码中一起删除字段?

不,你不能,主要是因为它会使匿名类在不同的执行中不同,并且类无法进行类型检查。

我建议将开始日期设置为null而不是默认值,并在稍后的代码中检查。