序言:从前日上马我将本身将修LINQ的有些知识点,所以自己以自我整理的记发表,以供和本人同以读书LINQ的食指会参考。大家的目标就是学好LINQ的根底,然后再一次基础方面我们能还进一步的读及LINQ的精髓。

  1. LINQ是什么?

(1) LINQ(Language Integrated Query)即语言集成查询。

(2) LINQ重要含有以下三独片

  1) LINQ to Objects重要担负对象的查询

  2) LINQ to XML 紧要承担XML的查询

  3) LINQ to ADO.NET 重要担负数据库的查询

u       LINQ to SQL

u       LINQ to DataSet

u       LINQ to Entrties

  1. LINQ的历史

(1) 最初由Anders hejlsberg构思,最初的钻计划称“C w”。

(2)二〇〇七年11月19日,LINQ作为.NET FrameWork3.5的均等有些专业文告。

  1. LINQ要缓解之问题

诠释:面向对象与数看片只世界长时间分裂,各自为政。

(1) 编程语言中的数据类型与数据库被之数据类型形成简单仿照系统。

(2) SQL编码体验落后

(3) SQL和XML都生个此外询问语言,而目标没团结的查询语言。

例如:我们所以LINQ实现查询数组中超出50之数字之代码是:

int[] arr = { 12, 33, 343, 456, 455, 6, 565, 565, 54 };

      IEnumerable ie = arr.Select(p => p).Where(p => p >
50);     

      IEnumerator result = ie.GetEnumerator();

      while (result.MoveNext())

      {

                      MessageBox.Show(result.Current);

      }

  1. LINQ的组成

 XML 1

  1. 增添方法

(1) 目的:对就在的项目标所作所为展开扩大。

(2) 目的:对现有的接近提供额外的法以增长该类的机能。

(3) public static class ClasssA
       {
                   public static string ExtraMehtod(this string s){  
………….   }     //this后面

    }              
            带类型,声明也该类型丰硕扩展方法:ExtraMehtod

(4) 注意事项:

  1) 扩大方法是同样种分外的静态方法

  2) 扩大方法必须在静态类吃定义

  3) 增加方法的预先级低于同名的类似情势

  4) 扩充方法只有以一定的命名空间内有效

  5) 除非必须毫无胡乱用扩大方法

  6) LINQ中的不二法门绝大部分都是扩大方法

比如说:建立一个WinForm程序一旦下图所出示,用来演示所实现的一个更换字母大小写的恢弘方法。:

XML 2

 

在扩展方法是波上面的代码实现过程是:

(1)   
先创建一个静态类,在开立了一个静态方法,并且那些静态方法实现了办法的重载,代码如下:

public static class ExtraClass

    {

        public static string ToPascal(this string s)

        {

            return s.Substring(0, 1).ToUpper() +
s.Substring(1).ToLower();

        }

        public static string ToPascal(this string s, int len)

        {

            return s.Substring(0, 1).ToUpper() + s.Substring(len,
1).ToLower() + s.Substring(len+1);

        }

    }

(2)    双击扩展方法按钮触发的轩然大波中的代码为

private void btnExtraMethod_Click(object sender, EventArgs e)

        {

            string s = “abcdefg”;

            MessageBox.Show(s.ToPascal());

        }

其一程序的实施结果吧:Abcdefg。

  1. 兰姆da表达式语法

(1) Lambda表明式是由.net framework l.0中暴发一个寄,在.net framework
2.0中发出一个匿名格局过于而来。

(2) 最基本的兰姆(Lamb)da表达式语法如下:   (参数列表)=>{方法体}

 表明:1) 参数列表中之参数类型可以是醒目项目或者是想类型

 2) 如如果推断类型,则参数的数据类型将出于编译器依照上下文自动测算出来。

流动:兰姆(Lamb)da表明式与匿名模式一般,但不同,匿名模式中的参数必须是曾定义之,而Lambda表明式可以是想的。

像:用拉姆da表达式所实现地点相当列子的力量。如图:

 

XML 3

(1)    先定义一个托,如下所示:

public delegate string deleTransfer(string s);    //注意方法签名

(2)    在概念一个术实现转移的机能,代码如下:

public string ToPascal(string s)

       {

           return s.Substring(0, 1).ToUpper() +
s.Substring(1).ToLower();

       }

(3)    然后再一次单击兰姆da控件事件上面的代码是:

private void btnLambda_Click(object sender, EventArgs e)

        {

            //.net framework 1.0委托-函数指针实现

            //deleTransfer trans = new deleTransfer(ToPascal);

            //MessageBox.Show(trans(“abcdefg”));

            //.net framework 2.0伏名为道实现

            //deleTransfer trans = delegate(string s)

            //{

            //    return s.Substring(0, 1).ToUpper() +
s.Substring(1).ToLower();

            //};

            //MessageBox.Show(trans(“abcdefg”));

            //拉姆da表明式实现

            deleTransfer trans = s => s.Substring(0, 1).ToUpper() +
s.Substring(1).ToLower();

            MessageBox.Show(trans(“abcdefg”));

        }

     执行结果是:Abcdefg

上边我们就成功了增添方法,委托,LINQ的史,拉姆da表达式的基本知识都因介绍完,下边的博客我们用伊始介绍LINQ的真的操作数据的写法。

相关文章

网站地图xml地图