代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

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

  •  10
  • leora Matt Lacey  · 技术社区  · 14 年前

    我有一些类似这样的代码,并从现有集合创建列表

     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显示那个日期,如果我没有一个值,那么在匿名类型中就没有开始日期字段。

    有没有可能有这样的条件逻辑,您可以在这种类型的代码中一起删除字段?

    1 回复  |  直到 14 年前
        1
  •  9
  •   Will Eddins ianpoley    14 年前

    不,您不能,主要是因为它会使匿名类在不同的执行中有所不同,并且类不能被类型检查。

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