[英]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.