如何将Foreach语句转换为linq表达式?

sea*_*ull 11 c# linq

如何将foreach转换为linq表达式?

var list = new List<Book>();

foreach (var id in ids)
{
    list.Add(new Book{Id=id});
}
Run Code Online (Sandbox Code Playgroud)

p.s*_*w.g 20

这非常直截了当:

var list = ids.Select(id => new Book { Id = id }).ToList();
Run Code Online (Sandbox Code Playgroud)

或者如果您更喜欢查询语法:

var list = (from id in ids select new Book { Id = id }).ToList();
Run Code Online (Sandbox Code Playgroud)

另请注意,ToList()只有在您真正需要时才需要List<Book>.否则,通常最好利用Linq的惰性评估能力,并允许Book仅按需创建对象对象.

  • @RandRandom这绝对是LINQ语法,它只是LINQ方法语法而不是查询语法.但是,两者仍然使用(在这种情况下)Linq-to-objects.请参阅http://msdn.microsoft.com/en-us/library/bb397947.aspx (3认同)