0

我有一个属性,它是 LINQ 语句中选择子句的一部分。这是一个需要转换为 UTC 的截止日期。

不幸的是,这个特定的属性是一个可以为空的日期时间对象,所以我被阻止使用.ToUniversalTime()扩展。

我不应该被允许使用空合并运算符来处理这个吗?我正在尝试这样做,但编译器对此并不满意:

item.DueDate ?? null ?? item.DueDate.ToUniversalTime().ToString("o")

我在这里错过了一些简单的东西吗?

4

3 回答 3

2
item.DueDate == null ? null : item.DueDate.Value.ToUniversalTime().ToString("o")
于 2013-08-01T20:51:21.573 回答
2

使用GetValueOrDefaulton 方法Nullable<T>,比三元合并或空合并要干净得多:

item.DueDate.GetValueOrDefault(yourDefaultHere).ToUniversalTime();
于 2013-08-01T20:52:45.260 回答
1

您不能使用 null 合并运算符来处理在可空对象上调用方法的情况。

试试下面的。

item.DueDate != null ? item.DueDate.ToUniversalTime().ToString("o") : null;
于 2013-08-01T20:51:42.620 回答