CSharp · Console
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
class Record
{
public int id {get; set;}
public string name {get; set;}
public DateTime date {get; set;}
}
public static void Main()
{
var records = new List<Record>()
{
new Record()
{
id = 1,
name = "abc",
date = new DateTime(2020, 8, 8)
},
new Record()
{
id = 2,
name = "def",
date = new DateTime(2020, 8, 9)
},
new Record()
{
id = 1,
name = "def",
date = new DateTime(2020, 8, 9)
}
};
var nested = records.GroupBy(r => r.id).Select(g =>
new
{
id = g.Key,
children = g.Select(cr =>
new
{
name = cr.name,
date = cr.date
}).ToList()
}).ToList();
foreach (var parent in nested)
{
Console.WriteLine($"Parent #{parent.id}");
Console.WriteLine("Children");
foreach (var child in parent.children)
{
Console.WriteLine("Child");
Console.WriteLine(child.name);
Console.WriteLine(child.date);
}
}
}
}