我应该在foreach C#中调用ToList()还是> [

问题描述 投票:1回答:2
此代码正常吗?

我应该叫ToList()。如果是,为什么?

这是一个实体框架。还是没关系,我可能不会打电话给列表吗?

var followers = from user in project.Followers where followersIds.Contains(user.Id) select user; foreach (var follower in followers.ToList()) { project.Followers.Remove(follower); }

此代码正常吗?我应该调用ToList()吗?如果是,为什么?它是一个实体框架。或没关系,我可能不会打电话给列表? var followers =来自项目中的用户。Followers...
c# entity-framework lazy-loading
2个回答
1
投票
ToList可以避免在迭代运行时错误时遇到修改过的集合。 ToList()会立即复制该集合,然后对其进行迭代,以从原始源project.Followers中删除项目。

0
投票
好,假设您正在使用Entity Framework(来自标签)。当您执行Linq表达式时,您将获得一个IQueryable集合。这个IQueryable并不是存储在内存中的真实集合,所有记录都是从数据库中获取的,它只是一条语句,用于查询数据库服务器。我的意思是,由于将访问此IQueryable,因此您将不会查询数据库。
© www.soinside.com 2019 - 2024. All rights reserved.