是否可以在匿名类型中使用条件字段

时间:2010-06-22 04:11:51

标签: c# linq anonymous-types conditional-statements

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

 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字段。
  2. 是否可以使用此条件逻辑,您可以在此类代码中一起删除字段?

1 个答案:

答案 0 :(得分:9)

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

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