I have a List that I need to sort by DateTime, the class MyStuff looks like:
public class MyStuff { public int Type {get;set;} public int Key {get;set;} public DateTime Created {get;set;} }
I need to be able to sort the collection List by the Created (DateTime) field.
Sort(IComparer) This method is used to sort the elements in the entire ArrayList using the specified comparer. This method is an O(n log n) operation, where n is Count; in the worst case, it is an O(n^2) operation. Syntax: public virtual void Sort (IComparer comparer);
Sort() Method Set -1. List<T>. Sort() Method is used to sort the elements or a portion of the elements in the List<T> using either the specified or default IComparer<T> implementation or a provided Comparison<T> delegate to compare list elements.
You seem to be working with a List<T>
object, in which case the most efficient (and a simple) method would be the following:
myList.Sort((x, y) => DateTime.Compare(x.Created, y.Created));
This uses the overload of the List.Sort method than takes a Comparison<T>
delegate (and thus lambda expression).
You can of course use the LINQ OrderBy
extension method, but I don't think this offers any advantages, and can be significantly slower, depending on your situation.
myList = myList.OrderBy(x => x.Created).ToList();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With