2015-10-04 147 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