c# - 是否可以有一个匿名类型的条件字段

标签 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 显示该日期,如果我没有值,则完全不要在匿名类型中包含开始日期字段。

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

最佳答案

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

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

关于c# - 是否可以有一个匿名类型的条件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3090218/

相关文章:

c# - 按名称 (ID) C# for ASP.NET 查找文本框

c# - 使用 Linq 从其他集合中存在键的集合中删除?

c# - 在 XNA 中应用模型转换后检索模型位置

c# - 更改 DropDownList 项取决于另一个 DropDownList(OnChange 事件)ASP.NET 网页中的值

c# - 模拟数据库上下文时如何使用 DefaultIfEmpty?

c# - 无法在 asp mvc 中隐式转换类型“System.Collections.Generic.List”

C#匿名类型foreach循环

c# - 为什么匿名类型在 C# 中是不可变的?

c# - nhibernate 投影到匿名类型

c# - 客户端之间的客户端服务器UDP连接c#