具有对象结构的对象列表如下
public class Schedule
{
public int ID { get; set; }
public string Name { get; set; }
public Schedule() {}
}
Run Code Online (Sandbox Code Playgroud)
对数据执行linq查询我可以看到正确填充的对象列表
var schedule = (from d in data
select new Schedule
{
ID = d.id,
Name = ""
}).ToList();
Run Code Online (Sandbox Code Playgroud)
稍后在代码中我想要更改属性名称取决于条件.我找到的几个例子
schedule.ForEach(s => { s.Name = "Condition Name"; });
schedule.Select(s => { s.Name = "Condition name"; return s; });
Run Code Online (Sandbox Code Playgroud)
执行后,当我在监视窗口中刷新计划时,请保留名称参数"null".有人能看出这有什么问题吗?
循环收集并尝试更改属性也不会改变它
foreach (var sch in schedule)
{
sch.Name = "New name";
}
Run Code Online (Sandbox Code Playgroud)
schedule.ToList()[0] .Name ==""
UPDATE
下面的代码段中的.ToList()调用对于使代码有效非常重要.
var schedule = (from d in data
select new Schedule
{
ID = d.id,
Name = ""
}).ToList();
Run Code Online (Sandbox Code Playgroud)