Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何操作DateTime列表_C#_Linq - Fatal编程技术网

C# 如何操作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

我有一个DateTime和单独变量DateTime的列表

 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();