如何确定集合中最早/最新的DateTime?

asm*_*smo 9 c# datetime

问题1:在DateTime对象的集合中,如何确定哪一个是最早/最新的?

问题2:在对象集合中,如何确定哪个对象具有最早/最新的DateTime属性?

例如:

class VideoGame
{
    DateTime ReleaseDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

哪个VideoGame会在第一个/最后一个发布?

var allGames = new List<VideoGame>();
allGames.Add( new VideoGame() { ReleaseDate = new DateTime(2010, 10, 4)} );
allGames.Add( new VideoGame() { ReleaseDate = new DateTime(2012, 7, 14)} );
allGames.Add( new VideoGame() { ReleaseDate = new DateTime(2014, 5, 26)} );
Run Code Online (Sandbox Code Playgroud)

Nei*_*l N 12

使用LINQ的OrderBy和OrderByDescending函数:

VideoGame first= allGames.OrderBy(x => x.ReleaseDate).FirstOrDefault();
VideoGame last = allGames.OrderByDescending(x => x.ReleaseDate).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
  • 如果allGames的项目为零,则first和last都为null.
  • 如果allGames有1个项目,则两个项目都将引用相同的项目