white smartphone

How to order by multiple columns using Lambas and LINQ in C# ?

Today , I was required to order a list of records based on a Name and then ID .

A simple one but i did spend some time on how to do it with Lambda Expression in C# .

How to order by multiple columns using Lambas and LINQ in C# ?

C# provides the OrderBy,OrderByDescending,ThenBy,ThenByDescending .

You can use them in your lambda expression to order the records as per your requirement .

Assuming your list is “Phones” and contains the following data …

public class Phone
{
        public int ID { get; set; }

        public string Name { get; set; }
}

public class Phones : List
{
        public Phones()
        {
            Add(new Phone { ID = 1, Name = "Windows Phone 7" });
            Add(new Phone { ID = 5, Name = "iPhone" });
            Add(new Phone { ID = 2, Name = "Windows Phone 7" });
            Add(new Phone { ID = 3, Name = "Windows Mobile 6.1" });
            Add(new Phone { ID = 6, Name = "Android" });
            Add(new Phone { ID = 10, Name = "BlackBerry" });
        }
}

If you were to use LINQ Query , the query will look like the one below

 dataGridView1.DataSource = (from m in new Phones()
                                        orderby m.Name, m.ID
                                        select m).ToList();

Simple isn’t it ? It very simple using Lamba expression too 🙂

Your Lambda’s expression for the above LINQ query will look like the one below

dataGridView1.DataSource = new Phones().OrderByDescending(a => a.Name).ThenByDescending(a => a.ID)
.ToList();

Share:

    1 Comment

  1. Lawrance
    January 13, 2012
    Reply

    this was very helpful. keep up the goodwork.

Leave A Reply

Your email address will not be published. Required fields are marked *

You May Also Like

C# Compiler Error CS0442 – ‘Property’: abstract properties cannot have private accessors Reason for the Error You’ll get this error...
This is a really simple one . Below is a simple example of an enum called “Designation” defined with the...
This blog post explain the usage of the Checked Block in .NET and how you can use them in Visual...