C# 对DateTime.Parse()正确使用Null条件运算符
我正在尝试使用C# 对DateTime.Parse()正确使用Null条件运算符,c#,C#,我正在尝试使用DateTime.Parse()将字符串转换为DateTime?,但仅当字符串不为空时。我正在尝试使用Null条件运算符 这就是我试图取代的: string maxPermissableEndDate = response.Contract.ReferenceFields.FirstOrDefault(t => t.code == "MAX_EXT_DATE")?.Value; if (!string.IsNullOrEmpty(maxPermissableEndDate)
DateTime.Parse()
将字符串转换为DateTime?
,但仅当字符串不为空时。我正在尝试使用Null条件运算符
这就是我试图取代的:
string maxPermissableEndDate = response.Contract.ReferenceFields.FirstOrDefault(t => t.code == "MAX_EXT_DATE")?.Value;
if (!string.IsNullOrEmpty(maxPermissableEndDate))
{
contract.MaximumPermissableEndDate = DateTime.Parse(maxPermissableEndDate);
}
当变量maxPermissableEndDate不为null时,如何仅以这种吸引人的方式将MaximumPermissableEndDate赋值给nullable DateTime属性
这是我在C#6.0文档中看到的示例:
string result = value;
if (value != null) // Skip empty string check for elucidation
{
result = value.Substring(0, Math.Min(value.Length, length));
}
另一种选择是:
value?.Substring(0, Math.Min(value.Length, length));
这不使用null coalesce操作符,但是类似这样的东西
DateTime attemptParseDate;
contract.MaximumPermissableEndDate =
DateTime.TryParse(maxPermissableEndDate, out attemptParseDate)?
attemptParseDate : (DateTime?) null;
您可以这样做:
contract.MaximumPermissableEndDate = string.IsNullOrEmpty(maxPermissableEndDate) ?
contract.MaximumPermissableEndDate
: new Nullable<DateTime>(DateTime.Parse(maxPermissableEndDate));
contract.MaximumPermissableEndDate=string.IsNullOrEmpty(maxPermissableEndDate)?
合同。最大允许终止日期
:new Nullable(DateTime.Parse(maxPermissableEndDate));