使用LINQ替换列表中的foreach

时间:2015-08-01 04:23:28

标签: linq

我不确定这是否可取,但有没有LINQ“方式”取代以下内容:

foreach (var u in users)
    context.Users.Add(u);

类似

context.Users.Add(....);

3 个答案:

答案 0 :(得分:3)

假设users类型为List<User>,您只需执行

users.ForEach(u => context.Users.Add(u));

虽然您不需要使用LINQ。你可以做到

context.Users.AddRange(users);

答案 1 :(得分:2)

您不需要LINQ。您需要使用AddRange代替Add

context.Users.AddRange(users);

假设:您使用的是实体框架,而Users的类型为DbSet<T>

答案 2 :(得分:0)

如果UsersDbSet,那么您可以使用AddRange完全没有循环:

context.Users.AddRange(users);

但是如果你真的想使用Linq,那么你也可以这样做:

users.ToList().ForEach(u => context.Users.Add(u));

或速记版本:

users.ToList().ForEach(context.Users.Add);
相关问题