using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class Employee { public string birthYear; public string firstName; public string lastName; public static Employee[] GetActors() { Employee[] actors = new Employee[] { new Employee { birthYear = "1964", firstName = "K", lastName = "R" }, new Employee { birthYear = "1968", firstName = "O", lastName = "W" }, new Employee { birthYear = "1960", firstName = "J", lastName = "S" }, new Employee { birthYear = "1964", firstName = "S",lastName = "B" }, }; return (actors); } } public class MyStringifiedNumberComparer : IEqualityComparer<string> { public bool Equals(string x, string y) { return (Int32.Parse(x) == Int32.Parse(y)); } public int GetHashCode(string obj) { return Int32.Parse(obj).ToString().GetHashCode(); } } public class MainClass { public static void Main() { ILookup<string, Employee> lookup = Employee.GetActors() .ToLookup(k => k.birthYear, new MyStringifiedNumberComparer()); IEnumerable<Employee> actors = lookup["1968"]; foreach (var actor in actors) Console.WriteLine("{0} {1}", actor.firstName, actor.lastName); } }