List.OrderBy define order in a variable

Viewed 219

I have a list containing objects :

class MyType
{
    String Name;
    String Address;
    DateTime BirthDay;
}

List<MyType> myList;

I want to write a function working like this :

public void SortList(int value)
{
    // orderValue => this is the variable I need
    if (value == 0)
        orderValue = MyType.Name; // Sort list by Name
    else if (value == 1)
        orderValue = MyType.Address; // Sort list by Address
    else if (value == 1)
        orderValue = MyType.BirthDay; // Sort list by BirthDay

    if (orderValue != null)
    {
        List<MyType> sortedList = myList.OrderBy(orderValue).ToList();
        if (Enumerable.SequenceEqual(myList, sortedList))
            sortedList = myList.OrderByDescending(orderValue).ToList();
        myList = sortedList;
    }
}

How can I write my orderValue to make this code working ?

This is just a synthesis of my code, I can provide more details if needed.

3 Answers
Related