Extension method for List<T> AddToFront(T object) how to?

Ryan Lee picture Ryan Lee · Jul 9, 2011 · Viewed 44k times · Source

I want to write an extension method for the List class that takes an object and adds it to the front instead of the back. Extension methods really confuse me. Can someone help me out with this?

myList.AddToFront(T object);

Answer

Anthony Pegram picture Anthony Pegram · Jul 9, 2011

List<T> already has an Insert method that accepts the index you wish to insert the object. In this case, it is 0. Do you really intend to reinvent that wheel?

If you did, you'd do it like this

public static class MyExtensions 
{
    public static void AddToFront<T>(this List<T> list, T item)
    {
         // omits validation, etc.
         list.Insert(0, item);
    }
}

// elsewhere

List<int> list = new List<int>();
list.Add(2);
list.AddToFront(1);
// list is now 1, 2

But again, you're not gaining anything you do not already have.