代码行如下所示:
ActiveEndDate = item[BuiltInFieldId.ActiveEndDate] != null ?
DateTime.Parse(item[BuiltInFieldId.ActiveEndDate].ToString()) : (DateTime?)null
Run Code Online (Sandbox Code Playgroud)
我怎样才能确保如果item[BuiltInFieldId.ActiveEndDate]不null声明它ActiveEndDate,则不要向变量声明任何内容,甚至不要null.
它必须在对象初始化期间
这是请求的周围代码:
var result = new Xannounce
{
MyX = (
from item in items.Cast<SPListItem>()
from ta in (item[FieldId.x] as string ?? "").Replace(";", string.Empty).Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
where audienceIds.Select(x => x.xID).Contains(ta)
select new Xannounce
{
Xid = item.ID,
Xpub = item[BuiltInFieldId.ResponsiblePublisher] as string ?? string.Empty,
XformUrl = item.ParentList.DefaultEditFormUrl,
ActiveEndDate = item[BuiltInFieldId.ActiveEndDate] != null ? DateTime.Parse(item[BuiltInFieldId.ActiveEndDate].ToString()) : (DateTime?)null,
ActiveStartDate = item[BuiltInFieldId.ActiveStartDate] != null ? DateTime.Parse(item[BuiltInFieldId.ActiveStartDate].ToString()) : (DateTime?)null,
XEndDate = item[BuiltInFieldId.EndDate] != null ? DateTime.Parse(item[BuiltInFieldId.EndDate].ToString()) : (DateTime?)null,
XStartDate = item[BuiltInFieldId.StartDate] != null ? DateTime.Parse(item[BuiltInFieldId.StartDate].ToString()) : (DateTime?)null,
XTitle = item[SPBuiltInFieldId.Title].ToString(),
XMessage = item[SPBuiltInFieldId.Body] != null ? item[SPBuiltInFieldId.Body].ToString() : string.Empty,
Xtype = new SPFieldLookupValue(item[BuiltInFieldId.AnnouncementType].ToString()).LookupId,
XAuthor = item[SPBuiltInFieldId.Author].ToString(),
XAudienceNames = AudienceUtility.FindAudiences(item[FieldId.AudienceTargeting].ToString(), SPServiceContext.Current).Select(y => ' ' + y.AudienceName).ToArray()
}),
// Code continues...
Run Code Online (Sandbox Code Playgroud)
任何形式的帮助或提示都很受欢迎
如何不使用三元运算符?
if(item[BuiltInFieldId.ActiveEndDate] != null){
ActiveEndDate = item[BuiltInFieldId.ActiveEndDate];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |