2010-06-22 77 views
10

我有一些代碼,看起來像這樣從現有集合是有可能有一個匿名類型字段條件

var items = items.ConvertAll(r => new 
      { 
       description = FormatDescription(r), 
       start = r.Milestone.HasValue ? r.Milestone.Value.ToString("yyyy-MM-ddTHH:mm:ssZ") : DateTime.Today.ToString("yyyy-MM-ddTHH:mm:ssZ"), 
       classname = "significance" + r.SignificanceLevel, 

正如你所看到的,現在如果我沒有創建一個列表開始日期(r.Milestone)然後我把今天的日期。我真正想如果要說到做到:

  1. ,如果我有一個r.Milestone.Hasvalue顯示日期,如果我沒有價值不必須在匿名類型起始日期字段在所有。

是否有可能有這種條件邏輯,你可以在這種類型的代碼中一起刪除字段?

+0

@Will Eddins - 通過將其設置爲null,是否仍然發送字段?如果沒有價值,我想從現有的領域中消除這個領域 – leora 2010-06-22 04:18:19

回答

8

不,你不能,主要是因爲它會使匿名類在不同的執行過程中有所不同,並且無法對類進行類型檢查。

我建議將開始日期設置爲空而不是默認值,並在代碼中稍後檢查。