Linq

c# list中的removeAll方法 两个List集合去除交集部分

list1.RemoveAll(it => list.Contains(it));

通过Linq查找重复数据

var sameAges = students.GroupBy(g => g.Age).Where(s => s.Count() > 1).ToList();

 sameAges.ForEach(s => {
                               Console.WriteLine($"*******年龄为{s.Key}一共{ s.Count()}人*******");
                               s.ForEach(o => Console.WriteLine(o.Name));
               });//显示数据

Linq查寻

var value=(from v in db.tbl select v.name).Distinct().ToList(); //去重复

list.GroupBy(p => p.PropertyName).Where(i => i.Count() > 1).Count() > 0  //查寻字段中重复数据

 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);
            }//下以结果

 

查寻排序

   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表示是按照哪个属性分组的

//找出list中m.level的元素,然后以leve排序,满足leve的条件后再以Age排序.

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值