LinQ由浅入深(一)
linq是什么:linq(Language Integrated Query)即语言集成查询。
linq主要包含以下三部分:
linq to Object 主要负责对象的查询
linq to Xml 主要负责XML的查询
linq to ADO.NET 主要负责数据库的查询,又分为以下几种:
linq to sql
linq to DataSet
linq to Entities
Linq要解决的问题:
面向对象与数据访问两个领域长期分裂,各自为政
编程语言中的数据类型与加上的数据类型形成两套体系。
SQL编码体验落后
SQL和XML都有各自的查询语言,而对象没有自己的查询语言。
扩展方法(对已存在的类型进行找扩展,提供额外的方法以增加该类的功能,LinQ中的方法绝大部分都是属于扩展方法):
1.扩展方法是一种特殊的静态方法。
2.扩展方法必须在静态类中定义。
3.扩展方法的优先级低于同名的类方法。
4.扩展方法只在特定的命名空间内有效。
5.除非必须不要滥用扩展方法。
扩展方法例子:
/// <summary>
/// 拓展类,只要是静态就可以
/// </summary>
public static class ExtraClass
{
//拓展方法--特殊的静态方法
//this string 表明为该类型添加拓展方法ToPascal
public static string ToPascal(this string str)
{
return str.Substring(0, 1).ToUpper() + str.Substring(1).ToLower();
}
}
/// <summary>
/// "拓展方法"按钮点击(拓展string方法,提供一种骆驼命名法的转换。)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExtrMethod_Click(object sender, EventArgs e)
{
string s = "adadFeTa";
MessageBox.Show(s.ToUpper()+"\t"+s.ToLower()+"\t"+s.ToPascal());
}
//调用方法
private void LoadInfo(object sender, EventArgs e)
{
string s = "我是扩展方法";
s.ToPascal();
}
声明:本教程大部分内容基于北风网专题培训提取而来。