chr*_*ofr 3 c# linq foreach loops
在以下示例中,当我返回集合时,不会保留在foreach中应用的更改:
var people = SomeLinqToSqlSource();
foreach (var person in people)
{
person.Name = "Jimmy";
}
return people.AsQueryable();
Run Code Online (Sandbox Code Playgroud)
这与我的理解相矛盾,即在foreach(..)中,您通过参考当前项目进行操作.
有人可以让我知道我哪里出错吗?
谢谢.
问题是,当你返回它并且消费者枚举结果时,它people是一个IQueryable并且被重新查询 - 你的更新属性现在消失了,因为每个person实例都是通过执行查询来重建的.
如果要保留更改,则必须首先实现数据,即使用ToList()然后将列表作为IEnumerable(或IList)返回
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |