开发者

How to sort a List collection of classes with properties in them?

I have a List of classes in my collection like

List<MyClass> test = new List<MyClass>();

In my classes I have just some properties

public string id {get; set;}
public DateTime date {get; set;}

Now I make these classes by getting some quer开发者_开发问答ies from 2 different database tables. I then take those 2 results from the database tables and using a foreach loop I make a new MyClass object and stick it in my "test" collection.

Now once all these classes are put in the the list collection. I want to sort through them and order the classes by the "date" property.

How could I do this? I can't order then right when I get them from the database since I am getting them from 2 different database tables and ordering them separately would only make it ordered in for each section but table one might have 12/12/2009 and so might table two. So they need to be ordered together.

So can I some how use linq or something to order them?

Thanks


How about:

list.Sort((x,y) => DateTime.Compare(x.date, y.date));

which sorts the existing list, or:

var sorted = list.OrderBy(x=>x.date).ToList();

which creates a second list.


If you want to sort them in place, you can use List<T>.Sort:

test.Sort( (l,r) => l.date.CompareTo(r.date) );

If you want to sort them into a new result set, LINQ is very nice:

var sortedResults = from mc in test
                    order by mc.date
                    select mc;


Once you have your classes in your list, and the list is complete:

List<MyClass> testList = new List<MyClass>();
// populate the list...

var orderedList = testList.OrderBy( x => x.date ).ToList();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜