using System.Collections.Generic;
public int id {get; set;}
public string name {get; set;}
public DateTime date {get; set;}
public static void Main()
var records = new List<Record>()
date = new DateTime(2020, 8, 8)
date = new DateTime(2020, 8, 9)
date = new DateTime(2020, 8, 9)
var nested = records.GroupBy(r => r.id).Select(g =>
children = g.Select(cr =>
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);