如何将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(); 

另请注意,只有在您确实需要List时才需要ToList() 。 否则,通常最好利用Linq的惰性评估function,并允许仅根据需要创建Book对象。

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