ARTICLE

ToLookup Extension Method explained

Posted by Jean Paul Articles | C# Language May 28, 2011
The ToLookup() method can be used to quickly create lookup items based on different conditions.
Reader Level:
Download Files:
 

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.
 

Login to add your contents and source code to this article
post comment
     

thanks for sharing...

Posted by Suthish Nair May 28, 2011
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.