Mega Code Archive

 
Categories / C# / LINQ
 

ToDictionary with IEqualityComparer

using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class Employee2 {     public string id;     public string firstName;     public string lastName;     public static ArrayList GetEmployeesArrayList() {         ArrayList al = new ArrayList();         al.Add(new Employee2 { id = "1", firstName = "J", lastName = "R" });         al.Add(new Employee2 { id = "2", firstName = "W", lastName = "G" });         al.Add(new Employee2 { id = "3", firstName = "A", lastName = "H"});         al.Add(new Employee2 { id = "4", firstName = "D", lastName = "L" });         al.Add(new Employee2 { id = "101", firstName = "K", lastName = "F" });         return (al);     }     public static Employee2[] GetEmployeesArray() {         return ((Employee2[])GetEmployeesArrayList().ToArray(typeof(Employee2)));     } } 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() {         Dictionary<string, string> eDictionary = Employee2.GetEmployeesArray()           .ToDictionary(k => k.id,i => string.Format("{0} {1}",i.firstName, i.lastName),new MyStringifiedNumberComparer());         string name = eDictionary["2"];         Console.WriteLine("Employee whose id == \"2\" : {0}", name);         name = eDictionary["000002"];         Console.WriteLine("Employee whose id == \"000002\" : {0}", name);     } }