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

时间:2014-06-12 21:06:55

标签: c# linq

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

var list = new List<Book>();

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

2 个答案:

答案 0 :(得分:18)

这很直接:

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的惰性评估能力,并允许Book对象只能按需创建。

答案 1 :(得分:1)

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