Convert query to Dictionary with Comparer in CSharp

Description

The following code shows how to convert query to Dictionary with Comparer.

Example


//  w  w  w  . j a va2 s. c o  m
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, Employee2> eDictionary = Employee2.GetEmployeesArray().ToDictionary(k => k.id, new MyStringifiedNumberComparer());
        Employee2 e = eDictionary["2"];
        Console.WriteLine("Employee whose id == \"2\" : {0} {1}", e.firstName, e.lastName);
        e = eDictionary["000002"];
        Console.WriteLine("Employee whose id == \"000002\" : {0} {1}",e.firstName, e.lastName);
    }
}

The code above generates the following result.





















Home »
  C# Tutorial »
    LINQ »




Operator
Select
Where
OrderBy
Group
Join
Let
LINQ