C#3.0有很多值得学习的地方,这里我们主要介绍Linq查询,包括介绍Linq Lambda表达式等方面。
C#3.0时代的Linq查询语句
在C#3.0中我们又有了改善代码的新工具。
匿名委托很不错,但是我们希望有更简单的,更容易维护的代码。C#3.0提供了Linq Lambda表达式的 概念,你可以把Linq Lambda表达式是我们应用匿名委托的捷径,下面是用Linq Lambda表达式重写的查询 :
static IEnumerable<Employee>
GoldWatch(IEnumerable<Employee> employees) {
return Filter(employees,
employee => employee.Years>3
);
}
static IEnumerable<Employee>
SalesForce(IEnumerable<Employee> employees) {
return Filter(employees,
employee => employee.Department=="Sales"
);
}
这段代码相当简单而且也很容易维护,但还存在一些问题。
◆GoldWatch(employees)
◆SalesForce(employees)
当你看到这样的调用的时候就会意识到这个问题,从OO的视角来看,我们已经熟悉了noun.verb()这样 的调用形式,理想情况下,我们希望用这样的语法能查询一个集合:
◆employees.GoldWatch()
◆employees.SalesForce()
时间: 2024-09-18 23:41:07