Q:

Linq group by producing duplicates using Max

I have the following data:
DATE       TYPE CUST     PRAC    CUTR        ACTI
2018-02-22,HOME,9481    ,10     ,29204.0    ,QUS
2018-02-22,HOME,9481    ,23     ,39204.0    ,QUS
2018-02-22,HOME,9481    ,64     ,29204.0    ,QUS
2018-02-25,HOME,9481    ,35     ,49533.0    ,QUS
2018-02-25,HOME,9481    ,52     ,29452.0    ,QUS
2018-02-25,HOME,9481    ,52     ,29446.0    ,QUS
2018-02-25,HOME,9481    ,25     ,29532.0    ,QUS
2018-02-27,HOME,9481    ,52     ,29665.0    ,QUS
2018-02-27,HOME,9481    ,45     ,29664.0    ,QUS

2018-02-21,HOME,7540    ,53     ,29205.0    ,QUS
2018-02-22,HOME,7540    ,35     ,39205.0    ,QUS

In the above data there are two customers: 9841 and 7540.
I need to select the record with the newest DATE.  Once I have the record with the newest date, then it should select the record with the highest CUTR value.
This is the linq I have so far:
List<clsCustomer> lstCustomer = (from row in lstCustomer
                                 group row by row.cust into g
                                 let maxDate = g.Max(r => r.date)
                                 from rowGroup in g
                                 where rowGroup.date == maxDate
                                 select rowGroup).ToList();

The following are the results returned:
DATE       TYPE CUST     PRAC    CUTR        ACTI
2018-02-27,HOME,9481    ,52     ,29665.0    ,QUS
2018-02-27,HOME,9481    ,45     ,29664.0    ,QUS
2018-02-22,HOME,7540    ,35     ,39205.0    ,QUS

Notice there are two rows returned for customer 9481.  It should only have returned one record per customer.  (latest date, THEN highest CUTR).
This should be the correct results returned.  Notice it should get the latest date for each customer.  Then from that results, get the highest CUTR:
DATE       TYPE CUST     PRAC    CUTR        ACTI
2018-02-27,HOME,9481    ,52     ,29665.0    ,QUS
2018-02-22,HOME,7540    ,35     ,39205.0    ,QUS

I am almost there but cannot figure out how to remove the extra row.  Any help would be appreciated.
ANSWER
Thank you habib and everyone for the answer:
var lstCustomer = (from row in lstCustomer
                   group row by row.cust into g
                   let maxDate = g.Max(r => r.date)
                   select g.Where(e => e.date == maxDate).OrderByDescending(e => e.cutr)
                   .FirstOrDefault()).ToList();

A:

You forgot the cutr clause. You already do from rowGroup in g where
  rowGroup.date == maxDate select rowGroup, just add one more such
  statement for cutr. And in case you need only one line even though
  there may be 2 with the same CUTR.
  @Mike Makarov

var lstCustomer  = from a in lstCustomer
                group a by a.cust into g
                let maxDate = g.Max(r => r.date)
                select g.Where(e => e.date == maxDate).OrderByDescending(e => e.cutr)
                .FirstOrDefault();

Hopefully it will workds

