LinqSelect

    技术2022-05-14  2

    Linq查询,是对实现了IEnumerable接口的对象的操作;

    int[] values = { 1, 2, 5, 2, 3, 5, 5, 3, 4, 3, 3 };

                var result = from item in values

                          group  item by item into g

                          orderby g.Count() descending

                          select new {数字=g.Key,次数=g.Count()};

            foreach (var item in result.Take(3))

             {

                 Console.WriteLine(item.数字+"="+item.次数);

            }

    From item in values,类似于foreach中的参数一样,values是一个数组,item表示values中的一个元素,由于item可能是引用类型,所以可能会有一些属性,这样可以把item理解成一张表,它的属性可以理解成表中的字段,然后by后面跟的就是根据哪个字段分组。然后可以把分组后的数据放到一组中into g,g表示的是组的名字。然后还可以对组进行操作,比如orderby 排序,descending表示降序排序。Select 表示赋值给变量,如果变量时var[]类型的话,可以使用匿名类型。

    匿名类型:new{属性1=value,属性2=value,属性3=value};表示建立了一个匿名类型的对象;

    如果又声明了一个相同类型的匿名类型,则不会再新建一个新的匿名类型;而使用存在的匿名类型。

    Var val=from item in values where bool表达式。 查询条件。Where后的表达式可以是任何布尔的表达式。

    IEnumerable<T>的扩展方法有很多,可以看看,比如avg,max,min,Connect,take,first;等等。Take(int num)表示去结果集的前几个记录。

     

    Var是一个可以推断类型的变量,它不能作为参数类型,不能作为返回值类型。比如var a=10;

    a是一个整型,如果a=”3”,则报错。

     


    最新回复(0)