我想要一种方法来更新 IEnumerable 的某些条目。我发现对条目进行 foreach 并更新值失败了,因为我在后台克隆了集合。这是因为我的 IEnumerable 得到了一些 LINQ->SQL 查询的支持。
通过更改获取列表的方法,我改变了这种行为,列表始终是可变的,因此该方法会更改列表中的实际对象。而不是要求传递一个列表,我可以使用一个可变接口吗?
// Will not behave as consistently for all IEnumerables
public void UpdateYesterday (IEnumerable<Job> jobs) {
foreach (var job in jobs.Where(x => x.date == Yesterday)) {
job.done = true;
}
}
...
public class Job {
...
public DateTime Date { get; set; }
}