欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linq

程序员文章站 2022-04-15 16:33:29
...

Linq查寻

 Any && All条件判断

            bool  res = master.Any((m) => {return  m.Menpai.Equals("丐帮"); });  //在master中遍历m元素,m元素中只要有一个条件满足res结果就为True
            bool ress = master.All ((m) => { return m.Menpai.Equals("丐帮"); });//在master中遍历m元素,而且所有m都满足条件res结果就为True

        查询表达式关键字:

    from:(表示从哪个集合做查寻)指定要查找的数据源以及范围变量,多个from子句则表示从多个数据源中查找数据

   select: 指定查询要返回的目标数据,可以指定任何类型,甚至是匿名类型

    where: 指定元素的筛选条件,多个where子句则表示了并列关系,必须全部都满足才能入选

    orderby: 指定元素的排序字段和排序方式,当有多个排序字段时,有字段顺序确定主次关系,可以指定升序和降序两种排序方式

    group: 指定元素的分组字段

    join: 指定多个数据源的关联方式

var dd = from x in items where x > 100 select x;

//将items集合的每个原素放入x中,找出x>100(where是查寻的条件),将满足条件的元素返回.

var dd=  items.Where<int>(x => { return x > 100; });

//使用Linq方法实现,func<int>(int ,bool) x>100满足条件返回int值,

            List<int> items = new List<int>();
            for (int i = 0; i < 200; i++)
            {
                items.Add(i);
            }
            var dd = from x in items where x > 100 select x;
            foreach (var tt in dd)
            {
                listBox1.Items.Add(tt);
            }//下以结果
LinqLinqLinq

Linq

查寻排序

   var lmbdadd = from x in items

                     where x % 2 == 0
                     orderby x
                     select x; //将items集合每个元素放入x中,并找出条件被2整除的余数为0的元素,从小到大排序并返回去.

var dd = items.Where (x => x > 100).OrderByDescending(x=>x) ;//从大到小

Join 关联查寻

var res =from m in master//关联查寻
                     join k in kongfu on m.Kungfu equals(k.KongfuName)
                     where k.Lethality==100
                     select new {master = m,kongfu=k };  //遍历master中的每个原素m,关联到数据kongfu数据中和m.Kungfu属性一样的名字,条件为k.等级要为100,然后将两个原素返回

//   into子句提供了一个临时标识符,它存储了into子句前面的查询内容,使它后面的子句可以方便的使用,对其进行再次查询,投影等操作。

            var res = from k in kongfu
                join m in master on k.KongfuName equals m.Kungfu  into  groups   //将m.Kungfu分组
                orderby groups.Count () descending  //并将分组的数量从大到小排序
                select new {kongfu = k, count = groups.Count()};  

            var res = from m in master
                      group m by m.Menpai  //将元素m中的Mempai进行分组,
                      into g               //然后将分组信息放在g中
                      select new { count = g.Count(), g.Key };//g.key中的key表示是按照哪个属性分组的

Linq