To get a single item out of the list, you can order the items then take the first one, like this:
var result = items .OrderByDescending(x => x.Date) .First();
But First will throw an exception if the items collection is empty. This is a bit safer:
var result = items .OrderByDescending(x => x.Date) .FirstOrDefault();
To get the min / max of different columns you can do this:
var result = new Item { Id = 1, Date = items.Min(x => x.Date), Comment = items.Max(x => x.Comment) };
But this will require two trips to the database. This might be a bit more efficient:
var result = (from x in items group x by 1 into g select new Item { Id = 1, Date = g.Min(g => g.Date), Comment = g.Max(g => g.Comment) }) .First();
Or in fluent syntax:
var result = items .GroupBy(x => 1) .Select(g => new Item { Id = 1, Date = g.Min(g => g.Date), Comment = g.Max(g => g.Comment) }) .First();
1,15AUG,CommentLASTModifiedthis row is formed from different rows in database. Is that what you want?1,15AUG,CommentFIRST- is a record with minimum date.3,18AUG,CommentLASTModifiedis a record with latest comment. You want a combination of these records