LINQ——查询

来源:互联网 发布:淘宝代运营sina 编辑:程序博客网 时间:2024/05/22 12:05

  什么是LINQ:LINQ,语言集成查询(Language Integrated Query)是一组用于C#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据(来自百度百科)。

  简单点,LINQ是一种对数据进行操作的语言,类似对数据库的操作。(容易上手)

例子:

<span style="font-size:18px;"> //泛型集合数据persons            List<string> persons = new List<string>();            persons.Add("zhang san");            persons.Add("wang wu");            persons.Add("li si");            persons.Add("Zhan san");            persons.Add("tan  qi");            persons.Add("gao jiu");            persons.Add("mao er");            //输出persons中所有的元素            //var result = from p in persons select p;            //输出persons 中姓zhang的人----语句和方法混合编排            //var result = (from p in persons select p).Where(p => p.StartsWith("zhang"));            //排序            var result = from p in persons orderby p select p;            </span>
定义一个数组:
<span style="white-space:pre"></span>   //定义一个int型数组
 int [] arr={324,5,3,564,3423,65,2,78,86,4235,78,54,676,456};</span>
聚合类:
<span style="white-space:pre"></span>    Console.WriteLine("arr的最大值:" + arr.Max());            Console.WriteLine("arr的最小值:" + arr.Min());            Console.WriteLine("arr的平均值:" + arr.Average());            Console.WriteLine("arr的数组个数:" + arr.Count());             Console.WriteLine("arr的总和:" + arr.Sum());</span>
排序类:
<span style="white-space:pre"></span>    var result = arr.OrderBy(p => p.ToString().Substring(0, 1));            var result = arr.OrderBy(p => p.ToString().Substring(0, 1)).ThenBy(p => p);//2次排序            var t= arr.OrderBy(p => p.ToString().Substring(0, 1));            var result = from p in t orderby  p descending select p;//降序。ascending 是升序</span>
分区类:

<span style="white-space:pre"></span>    var result = arr.Skip(3).Take(3);//跳过3个值,再取三个值            var result = arr.SkipWhile(p => p > 45);//数组中第一个数大于45跳过,取后面的数,如果小于,取所有的数</span>
集合类:
<span style="white-space:pre"></span>    var result = arr.Distinct();//唯一的值</span>
生成类----静态类:
<span style="white-space:pre"></span>    var result = System.Linq.Enumerable.Range('a', 30);//生成连续的序列            var result=System.Linq.Enumerable.Repeat ("aav",5); //重复5次</span>
   除了生成类是静态类,其他的聚合类,排序类,分区类和集合类都是扩展类。

  总结:这个LINQ语言,需要写写代码更加容易加深印象,虽然你看也能看懂,但不保证你过几天就会忘记,所以,还是动动你的手指,找些例子做一做吧。









0 0