c# – Linq项目集合中未保留Foreach更改
发布时间:2020-12-16 01:48:10 所属栏目:百科 来源:网络整理
导读:在以下示例中,当我返回集合时,不会保留在foreach中应用的更改: var people = SomeLinqToSqlSource();foreach (var person in people){ person.Name = "Jimmy";}return people.AsQueryable(); 这与我的理解相矛盾,即在foreach(..)中,您通过参考当前项目进行
在以下示例中,当我返回集合时,不会保留在foreach中应用的更改:
var people = SomeLinqToSqlSource(); foreach (var person in people) { person.Name = "Jimmy"; } return people.AsQueryable(); 这与我的理解相矛盾,即在foreach(..)中,您通过参考当前项目进行操作. 有人可以让我知道我哪里出错吗? 谢谢. 解决方法
问题是人们是IQueryable并且当你返回它时被重新查询并且消费者枚举结果 – 你的更新属性现在消失了,因为每个人实例都是通过执行查询来重建的.
如果要保留更改,则必须首先实现数据,即使用ToList()然后将列表作为IEnumerable(或IList)返回 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |