【发布时间】:2014-12-30 17:41:10
【问题描述】:
假设我有以下匿名类型
var g = records.Select(r => new
{
Id = r.CardholderNo,
TimeIn = r.ArriveTime,
TimeOut = r.LeaveTime,
});
是否可以执行以下操作:
var g = records.Select(r => new
{
Id = r.CardholderNo,
if (condition)
{
TimeIn = r.ArriveTime;
},
TimeOut = r.LeaveTime,
//many more properties that I'd like to be dependant on conditions.
});
如何根据条件实现匿名类型?
【问题讨论】:
-
var g = records.Select(r => new { Id = r.CardholderNo, TimeIn = condition?r.ArriveTime:null TimeOut = r.LeaveTime });
-
不,这是不可能的。匿名是强类型的。当
condition在运行时被解析时,你会期待什么行为? -
我认为演员可以解决问题@pwas
-
当您不知道对它有什么期望时,使用这样的对象是不可能或非常困难的。您必须首先检查该属性是否存在,然后检查它是否具有值。
标签: c# .net anonymous-types