Как преобразовать выражение Foreach в выражение linq?

как преобразовать ниже foreach в выражение linq?

var list = new List(); foreach (var id in ids) { list.Add(new Book{Id=id}); } 

Это довольно прямолинейно:

 var list = ids.Select(id => new Book { Id = id }).ToList(); 

Или, если вы предпочитаете синтаксис запроса:

 var list = (from id in ids select new Book { Id = id }).ToList(); 

Также обратите внимание, что ToList() необходим только в том случае, если вам действительно нужен List . В противном случае, как правило, лучше использовать возможности ленивой оценки Linq и разрешать создавать объекты объектов Book только по требованию.

 var list = ids.Select(id => new Book(id)).ToList();