Please refer this code ...I created sample according to your requirement.
public class SampleClass
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
}
Then following is query to get records:
var sampleLst=new List<SampleClass>{
new SampleClass{ ID=1,Name="Alex",Date=DateTime.Now},
new SampleClass{ID=2,Name="Dale",Date=DateTime.Now},
new SampleClass{ID=3,Name="Alex",Date=DateTime.Now.AddDays(1)}
};
var result = from t in sampleLst
group t by t.Name into g
select g.OrderByDescending(x=>x.Date).FirstOrDefault();