我有这段代码最终被序列化为 JSON,用于 Jquery FullCalender 插件。 ToUnixTimeSpan 方法在 DateTime 对象中执行任务并返回自 1970 年以来的秒数。
DateEnd 可能为空。在这段代码中,如果 DateEnd 为 null,我如何测试 null 并跳过 end = ToUnixTimespan(e.DateEnd)?是否有等效于 groovy 安全运算符的 C#?
var listEvents = from e in eventRepository.GetAllEvents()
select new
{
id = e.EventID,
title = e.EventTitle,
start = ToUnixTimespan(e.DateStart),
end = ToUnixTimespan(e.DateEnd),
url = "/Events/Details/" + e.EventID
};
关于 ToUnixTimespanMethod 的更多信息:
private long ToUnixTimespan(DateTime date)
{
TimeSpan tspan = date.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0));
return (long)Math.Truncate(tspan.TotalSeconds);
}
最佳答案
等一下......为什么我要在评论上浪费这个,当我可以利用乔恩的工作来做一些代表时......;-)
end = e.DateEnd == null ? (long?) null : ToUnixTimespan(e.DateEnd.Value)
那应该解决“无法从'System.DateTime转换?'到'System.DateTime'。”错误。
关于c# - 跳过潜在的空值 c#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3344069/