【发布时间】:2016-10-11 06:25:11
【问题描述】:
我很难理解 lambda 表达式。据我了解,lambda 表达式是一种方便(更少代码)的匿名方法。我理解匿名方法。在下面的代码示例中,如何将 lambda 表达式更改为匿名方法?
public class CustomersController : Controller {
// GET: Customers
public ViewResult Index() {
var customers = GetCustomer();
return View(customers);
}
public ActionResult Details(int id) {
var customers = GetCustomer().SingleOrDefault(c => c.Id == id);
if (customers == null)
return HttpNotFound();
return View(customers);
}
private IEnumerable<Customers> GetCustomer() {
return new List<Customers> {
new Customers { Id = 1, Name="John Smith"},
new Customers { Id = 2, Name = "Mary Smith"}
};
}
}
【问题讨论】:
-
Lambda 表达式可以转换为expression trees,而匿名方法则不能。因此,在处理需要表达式树的框架/库时,例如实体框架,你必须使用 lambda 表达式。
标签: c# lambda anonymous-methods