The built-in Enumerable.cs contains various extension methods for IEnumerable 
interface. One of the method will be ToLookup() which is explained below:
The ToLookup() method can be used to quickly create lookup items based on 
different conditions. 
E.g.: In a list of Employee objects it can create lookup list based on the Age 
of each employee.
Operates on: IEnumerable
Returns: ILookup<T1, T2>
Please note that the return value is a an interface of ILookup which contains 2 
generic arguments. The first generic argument performs as the key and the values 
will be an IEnumerable of the original type.
Example
Now let us take a more real time example where we have a series of Employee 
objects having Id, Age and Name as the properties. We need to create a lookup 
list based on their age. The result will be having Age as key and the 
corresponding Employee objects.
The class representation of Employee is given below:
![ToLookUp.gif]()
In the following code we can see 6 employee objects are created with age 20 and 
30. By using the ToLookup() method we are finding the employees of age 20.
       
static void 
Main(string[] args)
        {
            IList<Employee> 
list = new List<Employee>();
            list.Add(new
Employee() { Id = 1, Age = 20, Name =
"Kavin" });
            list.Add(new
Employee() { Id = 2, Age = 30, Name =
"Alen" });
            list.Add(new
Employee() { Id = 3, Age = 20, Name =
"Suresh" });
            list.Add(new
Employee() { Id = 4, Age = 30, Name =
"Jay" });
            list.Add(new
Employee() { Id = 5, Age = 20, Name =
"Nanda" });
           
ILookup<int,
Employee> lookupList = list.ToLookup(employee 
=> employee.Age);
           
Console.WriteLine("Employee 
with Age 20 are following:");
            foreach (Employee 
employee in lookupList[20])
                Console.WriteLine(employee);
           
Console.ReadKey(false);
        }
The result of the above code will be Employee objects with Age = 20:
1 Kavin
3 Suresh
5 Nanda
Source Code
The attached source contains the ToLookup() sample with the associated console 
application.