技术开发 频道

LINQ to SQL基础


   在没有C#3.0的时代,我们对于这样的接口就需要对两种重载都进行实现,有了扩展方法,接口就变得简单多了:
Code15:
interface ILog 
{
void Write(String msg);
}
   在没有C#3.0的时代,我们对于这样的接口就需要对两种重载都进行实现,有了扩展方法,接口就变得简单多了:
Code15:
interface ILog 
{
void Write(String msg);
}
   扩展方法我们添加到另外一个类中:
Code16:
static class LogExtensions 
{
public static void Write(this ILog log)
{
log.Write("Info");
}
}
   这样我们对于以上接口的实现,只需实现单一的方法,而在客户端却可以自由的调用任何一种重载。对于扩展方法,还可以扩展到.NET Framework中提供的类型。

9. Lambda 表达式
   
    Lambda表达式类似于.NET2.0中的匿名方法,为编写匿名方法提供了更简明的函数式的句法,但结果却在编写LINQ查询表达式时变得极其有用,因为它们提供了一个非常紧凑的而且类安全的方式来编写可以当作参数来传递,在以后作运算的函数。使用的语法如下:
   (参数列表) => 表达式或者语句块
   理解Lambda表达式最简单的方法就是理解成为行内方法,即在一行代码内实现我们以前函数体中的功能。示例代码如下:
Code17:
public class Demo 
{
List<Customer> Customers = new List<Customer>
{
new Customer{Name = "TerryLee", Age=24},
new Customer{Name = "lhj", Age=36},
new Customer{Name = "lihuijun", Age=24}
};

IEnumerable<Customer> customers = Customers.Where(p => p.Name = "TerryLee");

int age = Customers.Average( a => a.Age);
}
    在上面的示例中,第一个Lambda来指定获取特定客户时所用的过滤条件,用第二个Lambda来指定在计算平均年龄时该用Customer对象的哪个值。 与匿名方法不同的是匿名方法要求参数类型是明确地指明的,Lambda表达式允许省略参数类型,而允许它们根据用法来推断出类型。
0
相关文章