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