I have list of packets where I am doing ordering and group based on DateAndTime of Result and Name of Packet. and also selecting only First item.
var packets = new List<Packet>
{
new Packet { Name = "P1", Result = new Result { Name = "N1", DateAndTime = new DateTime(2020, 05, 11, 10, 30, 50) }},
new Packet { Name = "P1", Result = new Result { Name = "N2", DateAndTime = new DateTime(2020, 05, 11, 10, 31, 50) }},
new Packet { Name = "P2", Result = new Result { Name = "N1", DateAndTime = new DateTime(2020, 05, 11, 10, 32, 50) }},
new Packet { Name = "P1", Result = new Result { Name = "N2", DateAndTime = new DateTime(2020, 05, 11, 10, 33, 50) }},
new Packet { Name = "P2", Result = new Result { Name = "N2", DateAndTime = new DateTime(2020, 05, 11, 10, 34, 50) }},
new Packet { Name = "P1", Result = new Result { Name = "N1", DateAndTime = new DateTime(2020, 05, 11, 10, 35, 50) }}
};
var resultData = packets.OrderByDescending(x => x.Result.DateAndTime).GroupBy(x => x.Name).Select(x => x.First());
Supporting Classes,
public class Packet
{
public string Name { get; set; }
public Result Result { get; set; }
}
public class Result
{
public string Name { get; set; }
public DateTime DateAndTime { get; set; }
}
Now I need to prepare Data object from above resultData,
public class Data
{
public string PacketName { get; set; }
public DateTime PacketTime { get; set; }
}
var data=new Data
{
PacketName = resultData.???
}
How to do this? Also OrderByDescending when to apply?
