2015-10-04 150 views
1

我正在嘗試爲TimeTime變量列表分配時間。 但是我執行linq foreach之後顯示爲00:00:00。 請讓我知道我哪裏錯了。在此先感謝未將時間分配給DateTime變量

TimeSpan ts = DateTime.Now.TimeOfDay;  
List<DateTime> lstdt = dates.Where(d => d.Date == tpl.Item1).ToList(); 
lstdt.ForEach(d => d = d.Date + ts); 
+0

ts值究竟是什麼? –

+0

我剛更新了代碼。請看一看。 ts是TimeSpan – IamP

回答

0

嘗試這樣的:

List<DateTime> lstdt = dates.Where(d => d.Date == tpl.Item1).ToList(); 
var myList = lstdt.Select(d => d.Date + ts).ToList(); 

或在一行

dates.Where(d => d.Date == tpl.Item1).Select(d => d.Date + ts); 

您分配值d但是,這並不在改變原有的日期列表

使用傳統的foreach你的代碼woul d是:

foreach (var d in lstdt) { 
    d = d.Date + ts; 
} 

這將在預期的時間分配給變量d但不會在列表中被改變。與linq沒有區別。

+0

謝謝塞巴斯蒂安。它的工作:) 我有另一個需要。對於lstdt中的每個元素,我想將時間跨度增加一定的時間。這怎麼可能?? 例如:假設ts是09:00 foreach元素它必須分配09:00然後11:00等等.. 如果我能夠在分配時間的情況下做到這一點,那將是一件好事。 – IamP

+1

@PrabhuChandan這是一個不同的問題,你應該發佈一個新的問題。 – Jonesopolis