using System.Collections.Generic;
public static void Main()
List<FishTank> fishTanks = new List<FishTank>();
fishTanks.Add(new FishTank(){Id = 1, TankName = "Nemo's Palace"});
fishTanks.Add(new FishTank(){Id = 2, TankName = "Ariel's Layer"});
List<Fish> fish = new List<Fish>();
fish.Add(new Fish(){Id = 1, TankId = 1, Name = "Nemo's Mom"});
fish.Add(new Fish(){Id = 2, TankId = 1, Name = "Nemo's Dad"});
fish.Add(new Fish(){Id = 3, TankId = 1, Name = "Nemo"});
fish.Add(new Fish(){Id = 4, TankId = 1, Name = "Nemo's Brother"});
fish.Add(new Fish(){Id = 5, TankId = 1, Name = "Nemo's Sister"});
fish.Add(new Fish(){Id = 6, TankId = 2, Name = "Ariel's Mom"});
fish.Add(new Fish(){Id = 7, TankId = 2, Name = "Ariel's Dad"});
fish.Add(new Fish(){Id = 8, TankId = 2, Name = "Ariel"});
fish.Add(new Fish(){Id = 9, TankId = 2, Name = "Ariel's Brother"});
fish.Add(new Fish(){Id = 10, TankId = 2, Name = "Ariel's Sister"});
fish.Add(new Fish(){Id = 11, TankId = 2, Name = "Sebastian"});
fishTanks.GroupJoin(fish, ft => ft.Id, f => f.TankId, ((ft, f) => new {Tank = ft, Fish = f})).ToList();
foreach(var result in results){
Console.WriteLine($"Id = {result.Tank.Id}, TankName = {result.Tank.TankName}");
Console.WriteLine("===================================");
Console.WriteLine("===================================");
foreach(var result in results){
Console.WriteLine("---------------------------------");
Console.WriteLine($"Id = {result.Tank.Id}, TankName = {result.Tank.TankName}");
foreach(var f in result.Fish){
Console.WriteLine($"Id = {f.Id}, TankId = {f.TankId}, Name = {f.Name}");
Console.WriteLine("---------------------------------");