C# Linq FirstOrDefault(), Distinct() 方法的使用心得

C# Linq FirstOrDefault(), Distinct() 方法的使用心得


前言

一、LINQ:

				获取默认第一条数据-FirstOrDefault() 方法
				获取不重复的数据-Distinct 方法

二、使用步骤

1.创建Book类

 public class Book
    {
        //作者
        public string author { get; set; }
        //标题
        public string Title { get; set; }
        //发布时间
        public DateTime Published { get; set; }

        public Book(string title,DateTime dateTime,string name) 
        {
            this.Title = title;
            this.Published = dateTime;
            this.author = name;
        }
        public Book() { }
    }

2.写入数据

            Console.WriteLine("********LINQ:获取不重复的数据-Distinct 方法***********");
            Book book6 = new Book("肖申克救赎2", new DateTime(2001, 7, 14), "弗兰克");
            Book book1 = new Book("哈利波特", new DateTime(1997, 7, 14), "Mari");
            Book book2 = new Book("肖申克救赎", new DateTime(1994, 7, 14), "弗兰克");
            Book book3 = new Book("幸福来敲门", new DateTime(2006, 7, 14), "克里斯");
            Book book4 = new Book("塔木德", new DateTime(0002, 07, 14), "犹太人");
            Book book5 = new Book("红楼梦", new DateTime(1763, 7, 14), "曹雪芹");
            List<Book> books = new List<Book>();
            books.Add(book6);
            books.Add(book1);
            books.Add(book2);
            books.Add(book3);
            books.Add(book4);
            books.Add(book5);

三、LINQ:获取默认第一条数据-FirstOrDefault() 方法

3.1FirstOrDefault() 方法 读取数据

           var articles = (from art in books
                            where art.author == "弗兰克"
                            select art).FirstOrDefault();
            
            if (articles == null)
            {
                Console.WriteLine(" 本书不存在");
            }
            else
            {
                Console.WriteLine(articles.author+"-------"+articles.Title);
            }

输出

********LINQ:获取默认第一条数据-FirstOrDefault()方法***********
弗兰克-------肖申克救赎2
先存入到list中是 books.Add(book6);所以取的第一个值为book6

3.2 Distinct() 方法 读取数据

要从结果集中删除重复数据,请使用 Distinct 方法

			Console.WriteLine("------按照出版时间排序--------");
            var bookByTime = from a in books
                              orderby a.Published descending select a;
            foreach (var item in bookByTime)
            {
                Console.WriteLine(item.Title + "--" + item.Published);
            }
            Console.WriteLine("-----出版时间排序后从第三个开始取出三个---------");
            var bookBySkip = (from a in books
                              orderby a.Published descending
                              select a ).Skip(3).Take(3);

            foreach (var item in bookBySkip)
            {
                Console.WriteLine(item.Title + "--" + item.Published);
            }

输出

------按照出版时间排序--------
幸福来敲门--2006/07/14 0:00:00
肖申克救赎2--2001/07/14 0:00:00
哈利波特--1997/07/14 0:00:00
肖申克救赎--1994/07/14 0:00:00
红楼梦--1763/07/14 0:00:00
塔木德--0002/07/14 0:00:00
-----出版时间排序后从第三个开始取出三个---------
肖申克救赎--1994/07/14 0:00:00
红楼梦--1763/07/14 0:00:00
塔木德--0002/07/14 0:00:00
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值