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