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