using System.Collections.Generic;
public class Animal : IEquatable<Animal>
this.Code = Guid.NewGuid();
public int Age { get; set; }
public Guid Code { get; set; }
public bool Equals(Animal other)
return this.Age == other.Age;
public override string ToString()
return $"Age:{this.Age}, Code: {this.Code}";
public static void Main()
var animals = new List<Animal>{
var dict = animals.GroupBy(x => x, x => x.Age);
foreach(var groupito in dict)
Console.WriteLine("<group>");
foreach (var element in groupito)
Console.WriteLine(element);
Console.WriteLine("</group>");