[英]How to convert a C# list of objects in a nested key:value format using LINQ in C#?
我正在构建.NET Core Web API,并且必须从数据库中结构异常的单个表中查询大量数据。 我想先将数据转换为更具可读性的格式,然后再将其发送回前端客户端。
我尝试使用GroupBy,但是即使数据已正确“分离”,我也无法实现所需的格式:对象中没有节点,也没有逻辑上的分离/嵌套。
var byDayGrouped = context.Lavori
.Where(x => x.datetime != null)
.GroupBy(row => new
{
row.datetime.Year,
row.datetime.Month,
row.datetime.Day,
row.datetime.WorkerName
})
.ToList();
这是我正在寻找的格式:
data: {
'01.01.2019': [
workerName: [
work1: {
...
},
...
],
...
]
'02.01.2019': [
...
]
}
这是我得到的:
[
[
{
...
},
...
]
]
您正在寻找字典,因为字典将被序列化为JSON对象,其中每个字典的键将成为该对象的属性。
字典的键可以是您想要的任何类型,在这种情况下,您需要一个字符串作为字典的键,作为值,您将使用IEnumerable<T>
,其中T是Lavori对象的任何类型。
我不确定您编写的GroupBy
是否按需要分组,因为您也按workerName
分组。
假设您只想要没有时间部分的日期(这是我认为的,因为您按Year
, Month
, Day
分组),那么以下内容将为您工作:
//Using .Date will remove the time part from a DateTime
var dictionary = Lavori.GroupBy(l => l.datetime.Date)
.ToDictionary(l => l.Key.ToString("dd.MM.yyyy"), l => l);
使用此小提琴来尝试解决方案: https : //dotnetfiddle.net/rPNRvC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.