C# 如何操作DateTime列表
我有一个DateTime和单独变量DateTime的列表C# 如何操作DateTime列表,c#,linq,C#,Linq,我有一个DateTime和单独变量DateTime的列表 List<DateTime> list = new List<DateTime>(); DateTime date; 列表已填写,日期是格式正确的日期,且不起作用。为什么?列表中被m引用的项目不会因lambda表达式中对m的新赋值而改变。您只是覆盖原始值的临时副本,而不是修改列表项 要对列表中的值进行实际更改,请使用索引器编写一个传统的循环,以就地修改内容 for (int i = 0; i < li
List<DateTime> list = new List<DateTime>();
DateTime date;
列表已填写,日期是格式正确的日期,且不起作用。为什么?列表中被
m
引用的项目不会因lambda表达式中对m
的新赋值而改变。您只是覆盖原始值的临时副本,而不是修改列表项
要对列表中的值进行实际更改,请使用索引器编写一个传统的循环,以就地修改内容
for (int i = 0; i < list.Count; i++)
{
var m = list[i];
list[i] = new DateTime(date.Year, date.Month, date.Day, m.Hour, m.Minute, m.Second);
}
使用最能满足您的用例的技术 列表中被
m
引用的项目不会因lambda表达式中对m
的新赋值而改变。您只是覆盖原始值的临时副本,而不是修改列表项
要对列表中的值进行实际更改,请使用索引器编写一个传统的循环,以就地修改内容
for (int i = 0; i < list.Count; i++)
{
var m = list[i];
list[i] = new DateTime(date.Year, date.Month, date.Day, m.Hour, m.Minute, m.Second);
}
使用最能满足您的用例的技术 您的列表中是否有条目?缺少基本调试。结果是:一个没有任何信息的问题。只值得一件事——结束。你在迭代什么,然后把它添加到列表中?目前,您似乎正在迭代日期列表,将所述日期转换为日期,并将其设置为列表中的当前项,这毫无意义。因此,您希望将列表中的每个条目都设置为日期?可能您需要的是
list。选择(m=>m=new DateTime(date.Year,date.Month,date.Day,m.Hour,m.Minute,m.Second)).ToList()代码>列表中是否有条目?缺少基本调试。结果是:一个没有任何信息的问题。只值得一件事——结束。你在迭代什么,然后把它添加到列表中?目前,您似乎正在迭代日期列表,将所述日期转换为日期,并将其设置为列表中的当前项,这毫无意义。因此,您希望将列表中的每个条目都设置为日期?可能您需要的是list。选择(m=>m=new DateTime(date.Year,date.Month,date.Day,m.Hour,m.Minute,m.Second)).ToList()代码>。。。或者使用LINQ创建一个新列表。非常感谢所有关心阅读我的问题并实际提供帮助的人。。。。或者使用LINQ创建一个新的列表。非常感谢所有关心阅读我的问题并实际提供帮助的人。
list = list.Select(m => DateTime(date.Year,date.Month,date.Day,m.Hour,m.Minute,m.Second))
.ToList();