日期:2014-05-20  浏览次数:20785 次

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();
    }


 声明:本教程大部分内容基于北风网专题培训提取而来。