Как преобразовать выражение Foreach в выражение linq?
как преобразовать ниже foreach в выражение linq?
var list = new List<Book>();
foreach (var id in ids)
{
list.Add(new Book{Id=id});
}
Ответ 1
Это довольно прямолинейно:
var list = ids.Select(id => new Book { Id = id }).ToList();
Или, если вы предпочитаете синтаксис запроса:
var list = (from id in ids select new Book { Id = id }).ToList();
Также обратите внимание, что ToList() необходимо, только если вам действительно нужно List<Book>. В противном случае, как правило, лучше использовать возможности Linq lazy для оценки и разрешать объекты объектов Book создавать только по требованию.
Ответ 2
var list = ids.Select(id => new Book(id)).ToList();