2015-08-01 2 views
1

Я не уверен, если это было бы желательно, но есть LINQ «путь» заменить следующее:Замена Еогеасп в списке с помощью LINQ

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

что-то вроде

контекста. Users.Add (....);

+0

возможно дубликат [Заменить Еогеасп цикл с помощью LINQ] (HTTP: // StackOverflow. com/questions/17572213/replace-foreach-loop-with-linq) –

ответ

3

Предполагая users является тип List<User> вы просто делаете

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

хотя вам не нужно использовать LINQ , Вы можете просто сделать

context.Users.AddRange(users); 
+1

'ForEach' не LINQ. Это всего лишь метод в 'List '. – MarcinJuraszek

+0

Полностью забыл о AddRange, но также забыл о методах ForEach, доступных в списке . Все, что позволяет мне сделать 3 строки кода в один, но все же читаемый, хорошо. – WhiskerBiscuit

2

Вам не нужен LINQ. Вы должны использовать AddRange вместо Add:

context.Users.AddRange(users); 

Допущение: вы используете Entity Framework и Users имеет тип DbSet<T>

0

Если Users является DbSet, то вы, вероятно, может обойтись без зацикливания на всех с помощью AddRange:

context.Users.AddRange(users); 

Однако, если вы действительно хотите использовать Linq, то вы можете также сделать это:

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

Или сокращенная версия:

users.ToList().ForEach(context.Users.Add); 
0

не должны делать эту замену, читайте в article по Eric Lippert хотя AddRange должно быть Ok решение

 Смежные вопросы

  • Нет связанных вопросов^_^