【问题标题】:is it possible to have a conditional field in an anonymous type是否可以在匿名类型中有条件字段
【发布时间】:2011-03-06 15:15:20
【问题描述】:

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

 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 显示该日期,如果我没有值,则在匿名类型中根本没有开始日期字段。

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

【问题讨论】:

  • @Will Eddins - 通过将其设置为 null,它是否仍会将字段发送过来?如果没有值,我想从现有的字段中消除该字段

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2012-07-01
    • 1970-01-01
    相关资源
    最近更新 更多