未将时间分配给DateTime变量
问题描述:
我正在尝试为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);
答
尝试这样的:
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
ts值究竟是什么? –
我刚更新了代码。请看一看。 ts是TimeSpan – IamP