C# List去重(学习笔记)

在list集合数据里面用Lambda实现排序、去重、分页、条件查询

class Program
    {
        static void Main(string[] args)
        {
            //list集合数据
            List<Student> students = new List<Student> {
                new Student { Id = 1, UserName = "王重阳", Sex = "男", Province = "湖北", CreateTime=DateTime.Parse("2020-09-27 03:32:23") },
                new Student { Id = 5, UserName = "一灯大师", Sex = "男", Province = "湖南", CreateTime=DateTime.Parse("2020-09-23 05:42:03") },
                new Student { Id = 3, UserName = "欧阳锋", Sex = "男", Province = "江西", CreateTime=DateTime.Parse("2020-09-02 08:01:02") },
                new Student { Id = 1, UserName = "洪七公", Sex = "男", Province = "四川", CreateTime=DateTime.Parse("2020-09-07 22:53:33") },
                new Student { Id = 1, UserName = "黄药师", Sex = "男", Province = "江苏", CreateTime=DateTime.Parse("2020-09-29 20:20:38") },
                new Student { Id = 1, UserName = "林朝英", Sex = "女", Province = "湖北", CreateTime=DateTime.Parse("2020-09-11 03:32:23") },
                new Student { Id = 5, UserName = "孙婆婆", Sex = "女", Province = "山东", CreateTime=DateTime.Parse("2020-09-10 05:42:03") },
                new Student { Id = 3, UserName = "李莫愁", Sex = "女", Province = "河南", CreateTime=DateTime.Parse("2020-09-10 08:01:02") },
                new Student { Id = 1, UserName = "陆无双", Sex = "女", Province = "河北", CreateTime=DateTime.Parse("2020-09-15 22:53:33") },
                new Student { Id = 1, UserName = "洪凌波", Sex = "女", Province = "江苏", CreateTime=DateTime.Parse("2020-09-03 20:20:38") },
                new Student { Id = 1, UserName = "小龙女", Sex = "女", Province = "湖北", CreateTime=DateTime.Parse("2020-09-01 01:12:53") },
            };

            //用Lambda表达式处理一些sql里面常遇到的问题

            //1.去重
            //students = students.Where((x, i) => students.FindIndex(z => z.Province == x.Province) == i).ToList();
            //Console.WriteLine("---------------------------------去重方式1.");
            //foreach (var user in students)
            //{
            //    Console.WriteLine("Id:{0},UserName:{1},Sex:{2},Province:{3},CreateTime:{4}", user.Id, user.UserName, user.Sex, user.Province,           user.CreateTime);
            //}

            Console.WriteLine("---------------------------------去重方式(分组后取第一条数据)2.");
            students = students.GroupBy(c => c.Province).Select(c => c.First()).ToList();
            foreach (var user in students)
            {
                Console.WriteLine("Id:{0},UserName:{1},Sex:{2},Province:{3},CreateTime:{4}", user.Id, user.UserName, user.Sex, user.Province, user.CreateTime);
            }

            //2.排序
            students = students.OrderBy(v => v.CreateTime).ToList();
            Console.WriteLine("---------------------------------升序排序");
            foreach (var user in students)
            {
                Console.WriteLine("Id:{0},UserName:{1},Sex:{2},Province:{3},CreateTime:{4}", user.Id, user.UserName, user.Sex, user.Province, user.CreateTime);
            }

            students = students.OrderByDescending(v => v.CreateTime).ToList();
            Console.WriteLine("---------------------------------降序排序");
            foreach (var user in students)
            {
                Console.WriteLine("Id:{0},UserName:{1},Sex:{2},Province:{3},CreateTime:{4}", user.Id, user.UserName, user.Sex, user.Province, user.CreateTime);
            }

            //3.条件查询
            students = students.Where(v => v.Sex.Contains("男")).ToList();
            //日期范围查询
            //DateTime StartTime = DateTime.Parse("2020-09-03 20:20:38");
            //DateTime EndTime = DateTime.Parse("2020-09-23 05:42:03");
            //students = students.Where(v => v.CreateTime >= StartTime && v.CreateTime <= EndTime).ToList();
            Console.WriteLine("---------------------------------条件查询");
            foreach (var user in students)
            {
                Console.WriteLine("Id:{0},UserName:{1},Sex:{2},Province:{3},CreateTime:{4}", user.Id, user.UserName, user.Sex, user.Province, user.CreateTime);
            }

            //4.分页
            students = students.OrderByDescending(u => u.CreateTime).Skip(5 * (1 - 1)).Take(5).ToList();
            Console.WriteLine("---------------------------------分页");
            foreach (var user in students)
            {
                Console.WriteLine("Id:{0},UserName:{1},Sex:{2},Province:{3},CreateTime:{4}", user.Id, user.UserName, user.Sex, user.Province, user.CreateTime);
            }

            Console.WriteLine("");
            Console.Read();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值