max date record in LINQ

2019-03-17 20:39发布

问题:

I have this table named sample with these values in MS Sql Server:

 ID    Date    Description
1    2012/01/02 5:12:43    Desc1
2    2012/01/02 5:12:48    Desc2
3    2012/01/03 5:12:41    Desc3
4    2012/01/03 5:12:43    Desc4

Now I want to write LINQ query that result will be this:

4    2012/01/03 5:12:43    Desc4

I wrote this but it doesn't work:

List<Sample> q = (from n in  Sample.Max(T=>T.Date)).ToList();

回答1:

Use:

var result = Sample.OrderByDescending(t => t.Date).First();


回答2:

To get the maximum Sample value by date without having to sort (which is not really necessary to just get the maximum):

var maxSample  = Samples.Where(s => s.Date == Samples.Max(x => x.Date))
                        .FirstOrDefault();


回答3:

List<Sample> q = Sample.OrderByDescending(T=>T.Date).Take(1).ToList();

But I think you want

Sample q = Sample.OrderByDescending(T=>T.Date).FirstOrDefault();


回答4:

var lastInstDate = model.Max(i=>i.ScheduleDate);

We can get max date from the model like this.