c# - 如何从组中获取第一项并准备数据类对象
问题描述
我有基于DateAndTime
ofResult
和Name
of进行排序和分组的数据包列表Packet
。并且只选择First
项目。
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());
支持类,
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; }
}
现在我需要从上面准备Data
对象resultData
,
public class Data
{
public string PacketName { get; set; }
public DateTime PacketTime { get; set; }
}
var data=new Data
{
PacketName = resultData.???
}
这该怎么做?还有OrderByDescending
什么时候申请?
解决方案
List<Data> datas = resultData.Select(x => new Data (){ PacketName = x.Name, PacketTime = x.Result.DateAndTime }).ToList();
或者
List<Data> datas = packets.OrderByDescending(x => x.Result.DateAndTime)
.GroupBy(x => x.Name)
.Select(x => new Data() { PacketName = x.First().Name, PacketTime = x.First().Result.DateAndTime })
.ToList();
推荐阅读
- c# - 返回带有模型的 MVC 视图时可以添加 json 响应吗?
- javascript - 为什么我要制作另一个 .then 从 fetch promise 中提取一个 promiseValue
- javascript - 不应发生嵌套对象语法错误
- django - 尽管使用了 fetchall 方法,Django 没有显示所有 mysql 数据库结果
- twilio - Vcard MMS 文件名始终为“text 1”
- javascript - 如何在 Node 脚本中使用 React 组件?
- python - 如何解析来自两个不同api调用的响应json,但在嵌套for循环中具有相同的字典名称和不同的值
- c++ - 将对象添加到地图时,std::make_pair 是否会创建副本?
- c - 如何通过指针运算访问内存块的标头?
- java - 增强的 For 循环不会改变我的数组的所有元素